如何编写一个函数来对多维数组进行字母顺序排列,使得第一个排序是“建立名称”,然后是“last_name”,然后是“first_name”
[70] =>
Array (
[id] => 635
[name] => Mick Kruzic
[dob] => 11/05/1968
[building_name] =>
[department] =>
[phone_ext] =>
[team_name] =>
[team_leader] =>
[party_registered] =>
[total_points] => 0
[total_tickets] => 0
[awarded_prizes] => 0
[processing_prizes] => 0
)
答案 0 :(得分:2)
usort是你的朋友。
function cmp($a, $b){
// compare building, e.g. using strcmp
// compare last_name
// compare first_name
// return 0 ($a == $b), -1 ($a < $b) or 1 ($a > $b)
}
usort($array, 'cmp');
答案 1 :(得分:0)
您要查看的函数是array_multisort()。 http://php.net/manual/en/function.array-multisort.php 您可以使用它对多维数组进行排序,或将多个数组排序在一起。 创建一个只需要排序的键的数组,然后将该数组用作第二个参数。
所以例如,如果整个数组是$ data:
foreach($data as $smallarray) $buildingnames[] = $smallarray['building_name'];
foreach($data as $smallarray) $lastnames[] = $smallarray['last_name'];
foreach($data as $smallarray) $firstnames[] = $smallarray['first_name'];
array_multisort($builingnames, ASC, $firstnames, ASC, $lastnames, ASC, $data);