【问题标题】:Sorting a multi-dimensional array by the sequence of another array按另一个数组的序列对多维数组进行排序
【发布时间】:2010-06-23 20:03:38
【问题描述】:

考虑以下数组:

$main_array = array();
$main_array[0] = array('location'=> array('France', 'Germany'), 'random_number'=> array('6520'));
$main_array[1] = array('location'=> array('Italy', 'Switzerland'), 'random_number'=> array('3245'));
$main_array[2] = array('location'=> array('Portugal', 'Spain'), 'random_number'=> array('9981'));
$main_array[3] = array('location'=> array('Turkey', 'Greece'), 'random_number'=> array('1098'));

我想根据random_number[0] 键的值并基于以下数组的序列对该数组进行排序:

$sequenced = array('3245','1098','6520','9981');

所以最终排序后的数组如下所示:

$final_array = array();
$final_array[0] = array('location'=> array('Italy', 'Switzerland'), 'random_number'=> array('3245'));
$final_array[1] = array('location'=> array('Turkey', 'Greece'), 'random_number'=> array('1098'));
$final_array[2] = array('location'=> array('France', 'Germany'), 'random_number'=> array('6520'));
$final_array[3] = array('location'=> array('Portugal', 'Spain'), 'random_number'=> array('9981'));

知道如何实现吗?

【问题讨论】:

    标签: php sorting arrays


    【解决方案1】:
    function sorter($array, $sequence){
      $tmp = array();
      foreach($sequence as $s){
        foreach($array as $a){
          if($a[random_number][0] == $s){ 
            array_push($tmp, $a);
            break;
          }   
        }   
      }
      return $tmp;
    }
    
    $final_array = sorter($main_array, $sequenced);
    

    【讨论】:

      猜你喜欢
      • 2011-12-10
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 2015-06-28
      • 2021-06-10
      相关资源
      最近更新 更多