根据二维数组中某个字段来排序
<?phpfunction sortByField(array $arr, string $field, int $asc = 1) {
if (count($arr) <= 1 || empty($field)) {
return $arr;
}
$arr = array_column($arr, null, $field);
$asc ? sort($arr) : rsort($arr);
return $arr;
}
$a = [
[
"a" => 1,
"b" => "111"
],
[
"a" => 0,
"b" => "000"
],
[
"a" => 3,
"b" => "333"
],
];
$res = sortByField($a, "a");
var_dump($res);
结果
array(3) { [0]=>
array(2) {
["a"]=>
int(0)
["b"]=>
string(3) "000"
}
[1]=>
array(2) {
["a"]=>
int(1)
["b"]=>
string(3) "111"
}
[2]=>
array(2) {
["a"]=>
int(3)
["b"]=>
string(3) "333"
}
}
还有一种是手动去建立 field的值 和 value 之间的映射,再对field的值进行排序,然后根据排序和映射,获取到结果。
上面这种方法利用了array_column()的特性,直接建立了这种映射。
以上是 根据二维数组中某个字段来排序 的全部内容, 来源链接: utcz.com/z/515007.html