[
1 => ['id' => 1, 'sort' => 1],
3 => ['id' => 3, 'sort' => 3],
2 => ['id' => 2, 'sort' => 2],
]
如何对其进行排序,以便使用内部“排序”键重新排序? 期望的结果:
[
1 => ['id' => 1, 'sort' => 1],
2 => ['id' => 2, 'sort' => 2],
3 => ['id' => 3, 'sort' => 3],
]
usort
与此比较功能一起使用:
function cmpBySort($a, $b) {
return $a['sort'] - $b['sort'];
}
usort($arr, 'cmpBySort');
array_multisort
以及附加的键值数组来排序:
$keys = array_map(function($val) { return $val['sort']; }, $arr);
array_multisort($keys, $arr);
array_map
与 匿名函数 用于构建 sort 值的数组,用于对数组值本身进行排序。这样做的好处是,每对值都需要调用 np 比较函数。
类似这样的:
usort($array, function (array $a, array $b) { return $a["sort"] - $b["sort"]; });
类似这样的:
uasort($array, 'compfunc');
function compfunc($a, $b)
{
return $a['sort'] - $b['sort'];
}