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

Benutzer-Avatar
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

Benutzer-Avatar
Janci

Um das erste Element zu entfernen, verwenden Sie array_shiftum das letzte Element zu entfernen, verwenden Sie array_pop:

<?php    
$array = array('10', '20', '30.30', '40', '50');
array_shift($array);
array_pop($array);

  • Ich denke, Ihre Antwort ist die richtige. Es hat eine bessere Leistung als array_slice.

    – Roham Rafii

    27. Januar 2019 um 11:50 Uhr

array_pop($array); // remove the last element
array_shift($array); // remove the first element

Benutzer-Avatar
ryguy

array_slice wird am schnellsten sein, da es sich um einen einzelnen Funktionsaufruf handelt.

Sie verwenden es wie folgt:
array_slice($input, 1, -1);

Stellen Sie jedoch sicher, dass das Array mindestens 2 Elemente enthält, bevor Sie dies tun.

Überprüfen Sie diesen Code:

$arry = array('10', '20', '30.30', '40', '50');
$fruit = array_shift($arry);
$fruit = array_pop($arry);
print_r($arry);

Benutzer-Avatar
Jeriko

Entfernt das erste Element aus dem Array und gibt es zurück:

array_shift($array);

Entfernt das letzte Element aus dem Array und gibt es zurück:

array_pop($array);

Wenn es Ihnen nichts ausmacht, beides gleichzeitig zu tun, können Sie Folgendes verwenden:

array_shift($array,1,-1));

das erste und letzte Element gleichzeitig abzuschlagen.

Überprüf den array_push, array_pop und array_slice Dokumentation 🙂

Benutzer-Avatar
McDowell

<?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

1311440cookie-checkPHP: Entfernen Sie das erste und letzte Element des Arrays

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy