0

例如,如果这些是我的数组:

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

这可能吗?请注意,我通过对前两个数组的相同键的总和提供的第三个数组进行排序得到了这个最终数组。

有什么帮助吗?

4

2 回答 2

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);
于 2012-10-13T07:59:09.527 回答
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);
于 2012-10-13T08:07:39.927 回答