Beste Weg, um entfernen "Spalte" aus mehrdimensionalen array
Ich habe ein multidimensionales php-array ist eine Tabelle wie diese
-------------
| A | 0 | A |
|--- | --- | ---|
| 0 | 0 | 0 |
|--- | --- | ---|
| A | 0 | A |
-------------
also der array sieht wie folgt aus:
array (size=3)
0 =>
array (size=3)
0 => string 'A' (length=1)
1 => string '0' (length=1)
2 => string 'A' (length=1)
1 =>
array (size=3)
0 => string '0' (length=1)
1 => string '0' (length=1)
2 => string '0' (length=1)
2 =>
array (size=3)
0 => string 'A' (length=1)
1 => string '0' (length=1)
2 => string 'A' (length=1)
Möchte ich nun löschen der zweiten Zeile und der zweiten Spalte (dies ist nur ein Vereinfachtes Beispiel btw).
Das löschen der Zeile ist einfach:
array_splice($array, 1, 1);
Ich fand diesen Ansatz aber Frage mich, ob es einen einfacheren Weg (ähnlich der Zeile) löschen Sie die Spalte als gut? Vielleicht ist die Umsetzung des ersten array?
- Der erste Kommentar auf die akzeptierte Antwort auf die Frage veröffentlicht, sagt eigentlich auch alles.
- Die Antwort ist 4 Zeilen, können nicht viel einfacher als das. Es nutzt nur die Funktion, die Sie selbst zur Verfügung gestellt, kombiniert mit einer foreach-Schleife...
- nun, lassen Sie mich anders formulieren: gibt es eine bessere Art und Weise der Durchführung?
- DIES IST KEIN DUPLIKAT. Dieser Frage ist "löschen" eine Spalte. Die andere Frage ist, wie die Rückkehr der x-Spalten. Das sind verschiedene Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Getestet auf Ideone: http://ideone.com/G5zRi0
Bearbeiten (Amade):
delete_col Funktion kann man auch leicht modifiziert, um die Arbeit mit arrays mit fehlenden Spalten:
Dies kann z.B. verwendet werden, wenn Sie brauchen, um die Iteration über ein array, und entfernen Sie einige Spalten in jedem Schritt. Eine Funktion mit array_splice statt unset wäre nicht angemessen, in solchen Szenarien (es ist offset-basierte und nicht-key-basiert).
Das PHP-Handbuch für
array_walk()
Staaten (Hervorhebung Hinzugefügt):Dass klingt für mich als wenn mpyw und Amade Antwort könnte funktionieren aber nicht zuverlässig.
Sicherer, die Lösung könnte die folgende sein: