2012-10-13 12 views
0

例如,如果這是我的數組:如何使用array_multisort對兩個+一個數組使用數組鍵進行排序?

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' 
} 

這可能嗎?請注意,我通過排序前兩個數組中相同鍵的總和所提供的第三個數組來獲得最終數組。

任何幫助?

回答

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); 
+0

非常感謝,但也有排序'$ arr1'和辦法'$ arr2'還有,根據他們的款項?謝謝。 – think123

+0

是的,複製一份'arr1'或'arr2'並將其作爲'arr3'使用。 – Dev

+0

啊,非常感謝。 – think123

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); 
相關問題