Verschachteln mehrerer Arrays in einem Array

7

Ich muss mehrere Arrays zu einem einzigen Array zusammenführen. Der beste Weg, um zu beschreiben, wonach ich suche, ist das "Verschachteln" der Arrays in ein einziges Array.

Nehmen Sie zum Beispiel den ersten Teil von Array # 1 und hängen Sie ihn an das letzte Array an. Holen Sie sich Element 1 aus Array 2 und fügen Sie es an das endgültige Array an. Erhalte Element 2 von Array # 1 und füge an ... etc.

Das endgültige Array würde etwa so aussehen:

Array # 1.Element # 1 Array # 2.Element # 1 . . .

Der "Kicker" ist, dass die einzelnen Arrays unterschiedlich lang sein können.

Gibt es eine bessere Datenstruktur?

    
spdaly 07.12.2009, 14:59
quelle

4 Antworten

25

zum Beispiel

%Vor%     
user187291 07.12.2009, 15:14
quelle
3

Wenn die Arrays nur numerische Schlüssel haben, ist hier eine einfache Lösung:

%Vor%

Wenn Sie Schlüssel benannt haben, können Sie die Funktion array_keys für jedes Array verwenden und stattdessen eine Schleife über das Schlüsselfeld ziehen.

Wenn Sie mehr als zwei Arrays (oder eine variable Anzahl von Arrays) wollen, können Sie vielleicht eine verschachtelte Schleife verwenden (obwohl ich denke, dass Sie $arr[0] und $arr[1] als die einzelnen Arrays benötigen).

    
DisgruntledGoat 07.12.2009 15:27
quelle
1

Ich würde einfach array_merge() verwenden, aber das hängt natürlich davon ab, was genau Sie tun.

Damit würden diese Arrays aneinander angehängt, während Elemente nur dann ersetzt würden, wenn sie den gleichen nicht numerischen Schlüssel hätten. Und das ist vielleicht kein Problem für Sie, oder es könnte wegen der Reihenfolge der Attribute gelöst werden, da der Inhalt der Elemente der ersten Arrays von den späteren überschrieben wird.

    
Franz 07.12.2009 15:05
quelle
0

Wenn Sie n Arrays haben, können Sie eine SortedList verwenden und arrayIndex * n + arrayNumber als Sortierindex verwenden.

    
Charles Bretana 07.12.2009 15:08
quelle

Tags und Links