Ich habe einige Probleme mit einem Array. Ich habe ein Array, das ich wie unten ändern möchte. Ich möchte Elemente (Elemente) davon nach Index entfernen und dann das Array neu indizieren. Ist es möglich?
$foo = array(
'whatever', // [0]
'foo', // [1]
'bar' // [2]
);
$foo2 = array(
'foo', // [0], before [1]
'bar' // [1], before [2]
);
unset($foo[0], $foo[3], $bar[1]);
array_splice
, und es hat nicht für den 0. und 1. Index funktioniert.http://php.net/manual/en/function.array-splice.php
quelle
Du benutzt es besser
array_shift()
. Dadurch wird das erste Element des Arrays zurückgegeben, aus dem Array entfernt und das Array neu indiziert. Alles in einer effizienten Methode.quelle
array_pop()
ruft das letzte Array-Element ab und entfernt es, wenn Sie dies benötigen. Es kann jedoch keine Funktion ausgeführt werden, um auf ein Element in der Mitte des Arrays zu wirken.quelle
Ich weiß nicht, warum dies abgelehnt wird, aber wenn sich jemand die Mühe gemacht hat, es zu versuchen, werden Sie feststellen, dass es funktioniert. Durch die Verwendung von sort in einem Array werden die Schlüssel des Arrays neu zugewiesen. Der einzige Nachteil ist, dass die Werte sortiert werden. Da die Schlüssel offensichtlich auch mit neu zugewiesen werden,
array_values
spielt es keine Rolle, ob die Werte sortiert werden oder nicht.quelle
Versuche es mit:
quelle
Neben der Antwort von xzyfer
Die Funktion
Verwenden
Ergebnis
quelle
Wenn Sie verwenden
array_merge
, werden die Schlüssel neu indiziert. Das Handbuch besagt:http://php.net/manual/en/function.array-merge.php
Hier habe ich die ursprüngliche Antwort gefunden.
http://board.phpbuilder.com/showthread.php?10299961-Reset-index-on-array-after-unset ()
quelle