2016-06-22 14 views
0

Ich möchte Reihenfolge der folgenden array zu 2. array Werte ändern.Sortieren Array-Tasten (numerische) zu bestimmten Reihenfolge Array (numerische)

Ich möchte die Reihenfolge der oben folgenden Array-Werte ändern.

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

Was ich

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

Meine gewünschte Ausgabe versucht haben, ist

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

beginnen mit 'array_multisort' –

+0

Mögliche Duplikat [ein Array von Tasten auf einem anderen Array basiert sortieren?] (Http://stackoverflow.com/questions/348410/sort-an-array-by-keys- basierend auf einem anderen Array) –

+0

@u_mulder Sie fügen Beispielcode hinzu? –

Antwort

1

Sie müssen array_replace statt array_merge verwenden.

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

Vielen Dank, es funktioniert für mich :) –

+0

@DevHub Ich bin froh, es hat funktioniert für dich :) – Hassaan

2

Dies sollte gut funktionieren.

$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

Danke, das ist auch ein guter Ansatz. –