php中基于另一个索引值的数组排序


Array sorting based on another index value in php

我有两个数组:

$number=array(1212,340,2310,670,90);            
$cars=array("Volvo","BMW","Toyota","Maruti","Zen");

我需要将$number数组从高到低排序,我正在使用rsort。我想根据$numbers的排序索引值对$cars进行排序,并对其进行回声。如:

$number=array(2310,1212,670,340,90); //sorted values
$cars=array("Toyota","Volvo","Maruti","BMW","Zen") //then display these values

我想我需要使用$order在这个答案中提到的基于另一个数组的键排序数组?但我还是不明白。我不想合并这两个数组。我想根据其他数组的n个索引值对数组进行排序

一个简单的多重排序应该:

$number=array(1212,340,2310,670,90);
$cars=array("Volvo","BMW","Toyota","Maruti","Zen");
array_multisort($number, SORT_DESC, SORT_NUMERIC, $cars);
var_dump($cars);

完全按照你想要的输出:

array(5) {
  [0]=>
  string(6) "Toyota"
  [1]=>
  string(5) "Volvo"
  [2]=>
  string(6) "Maruti"
  [3]=>
  string(3) "BMW"
  [4]=>
  string(3) "Zen"
}

你需要array_combine

下面是一个例子:

<?php
    $number=array(1212,340,2310,670,90);            
    $cars=array("Volvo","BMW","Toyota","Maruti","Zen");
    $newarray = array_combine($number, $cars);
    print_r($newarray);
?>

结果:

Array ( [1212] => Volvo [340] => BMW [2310] => Toyota [670] => Maruti [90] => Zen ) 
http://www.php.net/manual/en/function.array-combine.php

使用多维数组然后排序:

<?php        
$cars=array(1212=>"Volvo",340=>"BMW",2310=>"Toyota",670=>"Maruti",90=>"Zen");
krsort($cars);
foreach ($cars as $key => $val) {
echo "$key = $val'n";
}