我如何编写一个函数来按字母顺序排列多维数组,使第一个排序是'building name'然后'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
)
ussort是你的朋友。
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');
您要查看的函数是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);