2016-06-22 18 views
0

arrayの順番を2番目のarrayの値に変更します。配列キー(数値)を特定の配列(数値)に並べ替えます。

Array 
(
    [2] => Array 
     (
      [title] => Photometric Interpretation 
      [name] => photometric_interpretation 
     ) 

    [3] => Array 
     (
      [title] => Make 
      [name] => make 
     ) 

    [4] => Array 
     (
      [title] => Model 
      [name] => model 
     ) 

    [5] => Array 
     (
      [title] => Strip Offsets 
      [name] => strip_offsets 
     ) 

    [6] => Array 
     (
      [title] => Samples Per Pixel 
      [name] => samples_per_pixel 
     ) 

    [7] => Array 
     (
      [title] => Rows Per Strip 
      [name] => rows_per_strip 
     ) 
) 

私は上記の順序を次の配列の値に変更したいと考えています。

Array 
(
    [0] => 3 
    [1] => 4 
    [2] => 7 
    [3] => 6 
    [4] => 5 
    [5] => 2 
) 

私は

$index = array_flip(['3,4,7,6,5,2']); 
$assigned_fields = array_merge($fisrt_array, $index); 

を試してみましたが、どのような私の所望の出力は、あなたがarray_replace代わりのarray_mergeを使用する必要が

Array 
(

    [3] => Array 
     (
      [title] => Make 
      [name] => make 
     ) 

    [4] => Array 
     (
      [title] => Model 
      [name] => model 
     ) 

    [7] => Array 
     (
      [title] => Rows Per Strip 
      [name] => rows_per_strip 
     ) 

    [6] => Array 
     (
      [title] => Samples Per Pixel 
      [name] => samples_per_pixel 
     ) 

    [5] => Array 
     (
      [title] => Strip Offsets 
      [name] => strip_offsets 
     ) 

    [2] => Array 
     (
      [title] => Photometric Interpretation 
      [name] => photometric_interpretation 
     ) 
) 
+1

'の –

+0

可能な複製をarray_multisort'とスタート[別の配列に基づいて、キーで配列をソート?](http://stackoverflow.com/questions/348410/sort-an-array-by-keys-別の配列に基づいて) –

+0

@u_mulderいくつかのサンプルコードを追加しますか? –

答えて

1

です。

$assigned_fields = array_replace(array_flip($index), $fisrt_array); 
+0

ありがとう、それは私のために働く:) –

+0

@DevHub私はうまく働いたあなたのために: – Hassaan

2

これは正常に動作するはずです。

$a = ['2' => ['title' => 'Photometric Interpretation', 
      'name' => 'photometric_interpretation'], 
    '3' => ['title' => 'Make', 
      'name' => 'make']]; 

$b = Array 
(
    0 => 3, 
    1 => 2 
); 

$c = []; 
foreach($b as $s) { 
    $c[$s] = $a[$s]; 
} 
print_r($c); 
+0

ありがとう、これはまた良いアプローチです。 –

関連する問題