例如,如果这些是我的数组:
array (4) {
[0] => 6,
[1] => 7,
[2] => 8,
[3] => 9
}
和
array (4) {
[0] => 10,
[1] => 1,
[2] => 3,
[3] => 5
}
这个数组,我要排序:
array (4) {
[0] => 'foo1',
[1] => 'foo2',
[2] => 'foo3',
[3] => 'foo4'
}
我会得到最终结果(排序后):
array (4) {
[0] => 'foo1',
[1] => 'foo4',
[2] => 'foo3',
[3] => 'foo2'
}
这可能吗?请注意,我通过对前两个数组中相同键的总和所提供的第三个数组进行排序来获得最终数组。
任何帮助?
答案 0 :(得分:2)
$arr1 = array(6,7,8,9);
$arr2 = array(10,1,3,5);
$arr3 = array('foo1','foo2','foo3','foo4');
$arr = array();
foreach($arr1 as $key => $item){
$arr[] = $arr1[$key] + $arr2[$key];
}
arsort($arr);
$res = array();
foreach($arr as $key => $value){
$res[] = $arr3[$key];
}
print_r($res);
答案 1 :(得分:0)
您也可以尝试这样
$arr1 = array(6,7,8,9);
$arr2 = array(10,1,3,5);
$arr3 = array('foo1','foo2','foo3','foo4');
foreach($arr1 as $key => $val){
$arr2[$key] += $arr1[$key];
}
$arr = array_multisort($arr2, $arr3);
$arr3 = array_reverse($arr3);
print_r($arr3);