我只是想通过firstName对多维数组进行排序。我一直在做很多研究,并且找不到与我的问题类似的东西。
(
[0] => Array
(
[lastName] => Mark
[firstName] => White
)
[1] => Array
(
[lastName] => Brown
[firstName] => Peter
[2] => Array
(
[lastName] => Paul
[firstName] => Vo
)
[3] => Array
(
[lastName] => MCLwous
[firstName] => Luis
)
[4] => Array
(
[lastName] => Zumilia
[firstName] => Mario
)
[5] => Array
(
[lastName] => Carl
[firstName] => Burns
)
)
答案 0 :(得分:2)
您可以使用usort函数,使用用户定义的比较函数对数组进行排序:
usort($array, function($v1, $v2) { return strcmp($v1['firstName'], $v2['firstName']); });
use function \nspl\a\sorted;
$sorted = sorted($array, 'firstName');
答案 1 :(得分:2)
当您标记问题laravel
时,我会给您一个使用该框架的答案,特别是使用Collections时可用的方法:
$sorted = collect($arr)->sortBy('firstName');
注意,这将返回laravel Collection
,而不是php数组。
如果您希望将已排序的数据作为普通的php数组返回,则最后会在toArray
处添加一个调用:
$sorted = collect($arr)->sortBy('firstName')->toArray();
答案 2 :(得分:0)
我的第一个想法是手动检查每个' firstName'并将firstName和userId保存在单独的字典中。然后使用排序的字典重新排列另一个空数组上的元素(按值或键排序字典是可能的。我已经看到了答案)。这是一个快速的答案。 :)