Assoziatives Array - Reihenfolge ändern (PHP)



  • Hi,

    ich habe zwei assoziative Arrays. In dem ersten Array habe ich die Reihenfolge verändert. Nun möchte ich das zweite Array gerne diese Reihenfolge geben.

    So sieht Array 1:

    Array ( [4] => 9 [3] => 8 [5] => 8 [2] => 6 [1] => 6)

    Nun habe ich ein zweites Arrays, welches ebenfalls Assoziativ ist allerdings aus mehreren Spalten besteht, aber die selbe Länge (sizeof) hat.

    Mit der Reihenfolge des ersten Arrays und den Daten des Zweiten Arrays will ich nun ein drittes Array bauen, welches dann so aussehen müsste:

    array3=Array();array3 = Array(); array3[] = array2[4];
    array3[] = array2[3]; array3[] = array2[5];
    array3[] = array2[2]; array3[] = array2[1];

    Nun sowas geht ja nicht. Ich habe alles mögliche versucht und bekomme es nicht.

    Meiner Meinung nach gibt es zwei Möglichkeiten. Entweder ein drittes Array erzeugen, oder die Elemente in Array2 entsprechend verschieben.
    Leider bekomme ich es nicht hin und brauche dringend eure Hilfe.

    Peter



  • Nur kurz, ob ich es richtig verstanden habe: Du möchtest die Daten von $array2 in der Reihenfolge von $array1 in $array3 schreiben?

    $array1 = Array(6, 6, 8, 9, 8);
    $array2 = ...
    $array3 = Array();
    for ($x = 0; $x < count($array1); $x++) {
        $array3[] = $array2[$array1[$x]];
    }
    


  • Alternativ:

    foreach ($array as $key => $val )
    {
    	$array3[$key]=$array2[$key];
    } // end of foreach $array
    


  • wegus schrieb:

    Alternativ:

    foreach ($array as $key => $val )
    {
    	$array3[$key]=$array2[$key];
    } // end of foreach $array
    

    Na wenn, dann aber:

    foreach ($array as $key => $val )
    {
    	$array3[$key]=$array2[$val];
    } // end of foreach $array
    

Anmelden zum Antworten