2012-05-28 44 views
-5

我需要将数组项的顺序更改为预定义顺序。在特定元素上重新排列数组

原数组是

$order = array(3136,3121,3147,3125); 

Array 
(
    [3121] => Array 
     (
      [0] => 311 
      [1] => 311> 
      [2] => First Level 
     ) 

    [3125] => Array 
     (
      [0] => 312 
      [1] => 312> 
      [2] => Ids 
     ) 

    [3136] => Array 
     (
      [0] => 313 
      [1] => 313> 
      [2] => Insurance 
     ) 

    [3147] => Array 
     (
      [0] => 314 
      [1] => 314> 
      [2] => Property 
     ) 
) 

需要产生象下面,

Array 
(
    [3136] => Array 
     (
      [0] => 313 
      [1] => 313> 
      [2] => Insurance 
     ) 
    [3121] => Array 
     (
      [0] => 311 
      [1] => 311> 
      [2] => First Level 
     ) 
    [3147] => Array 
     (
      [0] => 314 
      [1] => 314> 
      [2] => Property 
     ) 
    [3125] => Array 
     (
      [0] => 312 
      [1] => 312> 
      [2] => Ids 
     ) 

) 

基地将数组元素的键,经过3136元素3121将被推向然后3147等

+0

第一个数组“转换”到第二个数组后面的“算法”是什么? – DonCallisto

+0

重排背后的逻辑是什么? – deceze

+0

这些变化的任何标准? – maxjackie

回答

2

只是猜测:

$order = array(3136,3121,3147); 
$new_arr =array(); 
foreach ($order as $key){ 
    if ($old_array[$key]) 
     $new_arr[$key]=$old_array[$key]; 
}