PHP: Entfernen Sie das erste und letzte Element des Arrays
Lesezeit: 3 Minuten
Angenommen, ich habe dieses Array:
$array = array('10', '20', '30.30', '40', '50');
Fragen:
Was ist der schnellste/einfachste Weg, um das erste Element aus dem obigen Array zu entfernen?
Was ist der schnellste/einfachste Weg, um das letzte Element aus dem obigen Array zu entfernen?
Das resultierende Array enthält also nur diese Werte:
’20’
‘30.30’
’40’
warum brauchst du “schnellstes” whay? Wie viele Elemente in Ihrem Array?
– Ihr gesunder Menschenverstand
20. April 2010 um 13:05 Uhr
@Col. Schrapnell: Stellen Sie sich eine Situation vor, in der es mehr Gegenstände im Array gibt, er hat gerade eine Probe gegeben, denke ich.
– Sarfraz
20. April 2010 um 13:14 Uhr
Ich weigere mich, einen solchen Unsinn in Betracht zu ziehen. Große Datenarrays sind Datenbankprobleme.
– Ihr gesunder Menschenverstand
20. April 2010 um 13:21 Uhr
@Col. Shrapnel: Sie haben Recht, aber Sie würden eine Menge solcher Fragen sehen, bei denen keine Optimierung erforderlich ist, aber Leute, insbesondere Neueinsteiger, fragen immer noch danach.
– Sarfraz
20. April 2010 um 13:23 Uhr
Sie müssen also über die Gefahren einer vorzeitigen Optimierung aufgeklärt werden.
– Ihr gesunder Menschenverstand
20. April 2010 um 13:26 Uhr
Decko
Die Verwendung von array_slice ist am einfachsten
$newarray = array_slice($array, 1, -1);
Wenn das Eingabearray weniger als 3 Elemente enthält, ist das Ausgabearray leer.
Sie haben dies als die richtige Antwort markiert, aber wenn ich Sie wäre, würde ich tatsächlich überprüfen, ob es wirklich so ist. Dieser Befehl erfordert das Kopieren eines großen Speicherbereichs. Verwenden array_{shift,pop} wird vermeiden, diesen Speicher zu kopieren. Schreiben Sie ein Skript, in dem Sie ein wirklich großes Array instanziieren, und rufen Sie dann Ihre Funktion auf, bis das Array 0 (oder 1) Elemente enthält.
– Robert Martin
13. November 2011 um 16:56 Uhr
Ich habe Benchmarking durchgeführt array_shift und array_pop Lösung vs array_slice Lösung. Verwenden array_slice ist sehr langsamer als die andere.
– Roham Rafii
27. Januar 2019 um 11:56 Uhr
Janci
Um das erste Element zu entfernen, verwenden Sie array_shiftum das letzte Element zu entfernen, verwenden Sie array_pop:
<?php
$array = array("khan","jan","ban","man","le");
$sizeof_array = sizeof($array);
$last_itme = $sizeof_array-1;
//$slicearray= array_slice($array,'-'.$sizeof_array,4);// THIS WILL REMOVE LAST ITME OF ARRAY
$slicearray = array_slice($array,'-'.$last_itme);//THIS WILL REMOVE FIRST ITEM OF ARRAY
foreach($slicearray as $key=>$value)
{
echo $value;
echo "<br>";
}
?>
array_slice erstellt ein neues Array, daher ist es sehr langsam. Diese Antwort verwendet es zweimal !!
– Roham Rafii
27. Januar 2019 um 11:46 Uhr
13114400cookie-checkPHP: Entfernen Sie das erste und letzte Element des Arraysyes
warum brauchst du “schnellstes” whay? Wie viele Elemente in Ihrem Array?
– Ihr gesunder Menschenverstand
20. April 2010 um 13:05 Uhr
@Col. Schrapnell: Stellen Sie sich eine Situation vor, in der es mehr Gegenstände im Array gibt, er hat gerade eine Probe gegeben, denke ich.
– Sarfraz
20. April 2010 um 13:14 Uhr
Ich weigere mich, einen solchen Unsinn in Betracht zu ziehen. Große Datenarrays sind Datenbankprobleme.
– Ihr gesunder Menschenverstand
20. April 2010 um 13:21 Uhr
@Col. Shrapnel: Sie haben Recht, aber Sie würden eine Menge solcher Fragen sehen, bei denen keine Optimierung erforderlich ist, aber Leute, insbesondere Neueinsteiger, fragen immer noch danach.
– Sarfraz
20. April 2010 um 13:23 Uhr
Sie müssen also über die Gefahren einer vorzeitigen Optimierung aufgeklärt werden.
– Ihr gesunder Menschenverstand
20. April 2010 um 13:26 Uhr