Letztes Element aus array löschen
Simon
- php
Hi,
bin grad am versuchen das letzte Element aus einem array zu löschen nur haut das irgendwie nicht so hin:
Ich hab hier ein array:
$array = explode(",",$_POST['textarea']);
ich wollte das ganze mit array_pop machen:
$array = array_pop(explode(",",$_POST['textarea']));
nur bekomm ich dann mit:
var_dump($array) nur string(0) ""
geht das vielleicht auch anders ?
MfG
Simon
Hi!
bin grad am versuchen das letzte Element aus einem array zu löschen nur haut das irgendwie nicht so hin:
$array = array_pop(explode(",",$_POST['textarea']));
Lies bitte im PHP-Handbuch nach, wie diese Funktion arbeitet, und was sie konkret zurückgibt.
geht das vielleicht auch anders ?
Als Einzeiler bekommst du das mit array_pop() nicht hin, jedoch mit array_slice(). Beachte die Hinweise zu den Parametern, besonders die von length.
Lo!
Hallo Simon,
$array = array_pop(explode(",",$_POST['textarea']));
nur bekomm ich dann mit:
var_dump($array) nur string(0) ""
Works as designed.
(Vermutlich war war der letzte Inhalt des Arrays ein leerer String.)
Manual zu array_pop():
array_pop() liefert den letzten Wert von array , und verkürzt array um ein Element.
Ist array leer (oder kein Array), wird NULL zurückgegeben.
In letzterem Fall wird auch eine Warnung erzeugt.
Ausserdem ist $array ein etwas unglücklicher Name für eine Variable.
(Könnte evtl. Probleme geben, da reserviertes Wort.)
Probier mal folgendes:
$textarray = explode(",",$_POST['textarea']);
// var_dump($textarray);
$kuerzungsresultat=array_pop($textarray);
// Kontrolle:
// echo "Kuerzungsresultat: [$kuerzungsresultat]";
// var_dump($textarray);
_Jetzt_ ist $textarray um das letzte Element verkürzt.
mfg Thomas
Hi!
Ausserdem ist $array ein etwas unglücklicher Name für eine Variable.
Ja, weil er nicht beschreibend genug ist. (Abgesehen von dem unzutreffenden Inhalt wegen der falsch verstandenen Arbeitsweise von array_pop().)
(Könnte evtl. Probleme geben, da reserviertes Wort.)
Nein. Variablennamen fangen immer mit einem $ an und sind somit nicht verwechselbar mit Schlüsselwörtern. Es gibt auch seitens PHP keine Empfehlung, Schlüsselwörter als Variablennamen zu meiden.
Lo!
Hallo,
Ausserdem ist $array ein etwas unglücklicher Name für eine Variable.
(Könnte evtl. Probleme geben, da reserviertes Wort.)Nein. Variablennamen fangen immer mit einem $ an und sind somit nicht verwechselbar mit Schlüsselwörtern.
Das stimmt im Prinzip schon.
Es gibt auch seitens PHP keine Empfehlung, Schlüsselwörter als Variablennamen zu meiden.
Doch, ich verstehe das folgende Zitat durchaus als eine solche Empfehlung:
Liste der reservierten Wörter
Die folgenden Listen enthält in PHP vordefinierten Bezeichner.
Sie sollten die reservierten Worte aus diesen Listen keinesfalls
in eigenen Skripten als Bezeichner benutzen. Die Listen enthalten
Schlüsselworte, vordefinierte Variablen, Konstanten und Klassennamen.
Liste der Schlüsselworte
abstract, and, array(), as, break, ...
mfg Thomas
Ergänzung:
Liste der Schlüsselworte
"Die Nutzung als Variablenname ist in der Regel möglich,
sollte aber unterlassen werden um Verwirrung zu vermeiden."
Also hatten wir beide ein Stück weit recht ... ;-)
mfg Thomas
Hallo Simon,
$array = array_pop(explode(",",$_POST['textarea']));
nur bekomm ich dann mit:
var_dump($array) nur string(0) ""Works as designed.
(Vermutlich war war der letzte Inhalt des Arrays ein leerer String.)
Das ist ja auch eigentlich mein Problem, warum ich das letzte Element löschen will weil es leer ist. Ich bekomme immer ein leeres von explode zurück.
Aber Jetzt funktioniert es
Danke,
MfG
Simon
Hi!
$array = array_pop(explode(",",$_POST['textarea']));
Das ist ja auch eigentlich mein Problem, warum ich das letzte Element löschen will weil es leer ist. Ich bekomme immer ein leeres von explode zurück.
Dann wäre die eigentliche Problemlösung das Entfernen der Zeichen, die du nicht brauchst. Dann liefert explode() auch keine ungewollten Elemente. Zum Löschen von Zeichen an den Enden eines Strings eignen sich ltrim(), rtrim() und trim().
Lo!
Hello,
bin grad am versuchen das letzte Element aus einem array zu löschen nur haut das irgendwie nicht so hin:
Ich hab hier ein array:
$array = explode(",",$_POST['textarea']);
ich wollte das ganze mit array_pop machen:
$array = array_pop(explode(",",$_POST['textarea']));
nur bekomm ich dann mit:
var_dump($array) nur string(0) ""geht das vielleicht auch anders ?
Ja, das geht so:
$array = explode(',', $_POST['textarea'], -1);
print_r($array);
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg