[PHP] array_push()

Status
Nicht offen für weitere Antworten.
S

Ship

Gast
Hi,

http://www.php.net/manual/de/function.array-push.php hat gesagt.:
Hinweis: Wenn Sie array_push() verwenden, um ein Element an ein Array anzuhängen, ist es besser $array[] = zu benutzen, da dies den zusätzlichen Aufwand vermeidet, eine Funktion aufzurufen
Was ist mit anhängen genau gemeint? Wird dabei die array-Variable überschrieben oder wird das Array um die entsprechende Anzahl von Feldern vergrößert?
 
Zuletzt bearbeitet von einem Moderator:

vladimir75

Bekanntes Mitglied
In PHP ist nicht so wie in Java, von Anfang an muss Du nicht den Speicherplatz für eine Variable definieren oder von einem array Anzahl von Elementen angeben. Bei array_pusch wird Array automatisch vergrößert.

Code:
$my_array=array("Stell"," Deine", " Frage”, " auch", " bei");
array_pusch($my_array, " phpforum.de");
print_r($my_array);

Haben wir keinen
PHP:
-Tag mehr? Oder war immer so?

Vladimir
 

Final_Striker

Top Contributor
Da steht genau der Satz bzw. Hinweis, den ich Zitiert habe. Und auf diesen bezieht sich auch meine Frage.

10 cm oben drüber steht aber auch:

"array_push() behandelt array als Stapel (Stack), und fügt die übergebenen Variablen an das Ende von array. Die Länge von array wird dabei um die Anzahl der angefügten Variablen erhöht."
 
T

Tomate_Salat

Gast
=> wir sind kein php-forum.

Das Beispiel ist selbsterklärend. Im notfall einfach mal selbst ausprobieren. Dem Array werden die Datensätze angehängt. Schau dir das Beispiel an, deutlicher kann man es nicht mehr beschreiben. Wenn es dir immernoch nicht klar ist, dann kommentiere mal das array_push aus und teste es:
Code:
$stack = array("Orange", "Banane");
//array_push($stack, "Apfel", "Himbeere");
print_r($stack);
danach wieder rein und test es wieder:
Code:
$stack = array("Orange", "Banane");
array_push($stack, "Apfel", "Himbeere");
print_r($stack);

wobei arrays in php afaik eh keine fixe größe haben, könntest du es auch so adden
Code:
$stack = array("Orange", "Banane");
$stack[]= "apfel";
$stack[]= "Himbeere";
print_r($stack);

MFG

Tomate_Salat
 
S

Ship

Gast
(Irrtümlicherweise) läst der Satz, den ich zitiert habe, vermuten, dass wenn man einer Array-Variable, die dahinter ein "[]" hat, etwas zuweißt, Sie nicht mit dem zugewiesenem überschrieben wird, sondern mit dem zugewiesenem addiert (unmathematisch (String ähnlich)) wird. Ist das aber nun so oder nicht?
 
T

Tomate_Salat

Gast
die dahinter ein "[]" hat
haben afaik alle Array-referenzen :-/

etwas zuweißt, Sie nicht mit dem zugewiesenem überschrieben wird, sondern mit dem zugewiesenem addiert (unmathematisch (String ähnlich)) wird
Den Satz musste ich 7x lesen, bevor ich ihn verstanden habe, oder glaube ihn zu verstehen:

manual hat gesagt.:
und fügt die übergebenen Variablen an das Ende von array. Die Länge von array wird dabei um die Anzahl der angefügten Variablen erhöht.

wurde doch schon in der Manual und von Final_Striker und von Vladimir und von Mir beantwortet ... ja das array wird erweitert
 
S

Ship

Gast
array_push ist aber nicht gleich array[] (ohne 0!) oder doch?

Der Hinweis, beschreibt ja auch etwas, was dann nichts mehr mit array_push zu tun hat.

Offenbar ist aber
Code:
$array[] = 'Geld';
das selbe wie
Code:
array_push($array,'Geld');
 
T

Tomate_Salat

Gast
wobei arrays in php afaik eh keine fixe größe haben, könntest du es auch so adden
Code:
$stack = array("Orange", "Banane");
$stack[]= "apfel";
$stack[]= "Himbeere";
print_r($stack);

Offenbar ist aber
Code:
$array[] = 'Geld';
das selbe wie
Code:
array_push($array,'Geld');

Ja das habe ich schon geschrieben...
 
S

Ship

Gast
Wenn das so vereinfacht ist, warum gibt es dann überhaupt die Funktion array_push? Na egal. Auf jeden fall ist, "anzuhängen" bzw. "hinzufügen" in dem Satz ziemlich missverständlich, da man es in anderen Programmiersprachen so geht, dass eine Adresszuweißung eine Adresszuweißung ist und nicht durch simplen [] zusatz, eine Adresserweiterung ist.

Thread bitte schließen.

Ich finde es unnötig, dass man zur Vorschau eine grafische Sicherheitsüberprüfung machen muss.
 

vladimir75

Bekanntes Mitglied
Was ist da so unverständlich?
//hier kannst Du die indizes angeben oder auch am Ende anhängen
Code:
$array[]=6;  //index 0, implizit
Code:
$array[5]=7; //index 5, expliziert
Code:
$array[]=8;  //index 6, implizit

Bei der array_pusch wird den wert nur am Ende angehängt

ich mache da zu.

Vladimir
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben