How to sort associative array by its value using PHP?
本问题已经有最佳答案,请猛点这里访问。
我有一个这样的关联数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | Array ( [0] => Array ( [id] => 1 [name] => Admin [email] => admin@admin.com [group] => Admin [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=1 ) [1] => Array ( [id] => 2 [name] => rochellecanale [email] => rochellecanale11@gmail.com [group] => [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=2 ) [2] => Array ( [id] => 3 [name] => symfony [email] => chelle@flax.ph [group] => [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=3 ) [3] => Array ( [id] => 4 [name] => jolopeterson [email] => jolo@flax.ph [group] => [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=4 ) [4] => Array ( [id] => 5 [name] => symfony123 [email] => symfony123@gmail.com [group] => [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=5 ) |
我想按
函数是您要查找的。
2您应该查看usort()和uksort()文档,了解用户定义的比较函数如何工作的示例。
http://php.net/manual/en/array.sorting.php
这是我的转到页面进行排序。如果要保留数组键,可以执行以下操作:
1 2 3 4 | uasort($myArray, function ($a, $b) { if ($a['name'] == $b['name'] return 0; return ($a['name'] < $b['name']) ? -1 : 1; }); |
将比较转换为更改或排序。如果经常使用这种类型,您可能希望将其提取到自己的函数中,而不是使用闭包。就个人而言,排序结束是相当短的,我喜欢把它放在内联中,这样我就可以准确地看到正在发生的事情,而不需要跳到另一个代码位。
试试这个
1 2 3 4 5 6 | $nameA = array(); foreach ($inventory as $key => $row) { $nameA[$key] = $row['name']; } array_multisort($nameA, SORT_ASC, $inventory); |
在这里
0是你的主阵吗