如何根据某个键值按字母顺序排序多维数组(PHP)


How to alphabetically sort a multi-dimensional array according to certain key value(PHP)

我如何编写一个函数来按字母顺序排列多维数组,使第一个排序是'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);