考虑以下关联数组:
$arrEmployees['marco polo'] = array(age => 40, service => 5);
$arrEmployees['jane austen'] = array(age => 30, service => 9);
$arrEmployees['carl marx'] = array(age => 30, service => 7);
如何使用array_multisort按年龄desc和服务asc进行排序? php.net中的示例#3似乎只适用于数字索引...
答案 0 :(得分:1)
$arrEmployees['marco polo'] = array(age => 40, service => 5);
$arrEmployees['jane austen'] = array(age => 30, service => 9);
$arrEmployees['carl marx'] = array(age => 30, service => 7);
foreach ($arrEmployees as $key => $row) {
$age[$key] = $row['age'];
$service[$key] = $row['service'];
}
array_multisort($age, SORT_DESC, $service, SORT_ASC, $arrEmployees);
var_dump($arrEmployees);
给出
array(3) {
["marco polo"]=>
array(2) {
["age"]=>
int(40)
["service"]=>
int(5)
}
["carl marx"]=>
array(2) {
["age"]=>
int(30)
["service"]=>
int(7)
}
["jane austen"]=>
array(2) {
["age"]=>
int(30)
["service"]=>
int(9)
}
}
这是正确的,并且所有关联索引仍然完好