# [PHP]  array_push()



## Ship (11. Aug 2010)

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?


----------



## Sempah (11. Aug 2010)

steht doch genau hier: PHP: array_push - Manual


----------



## Ship (11. Aug 2010)

Sempah hat gesagt.:


> steht doch genau hier: PHP: array_push - Manual



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


----------



## vladimir75 (11. Aug 2010)

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.


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

Haben wir keinen 
	
	
	
	





```
-Tag mehr? Oder war immer so?

Vladimir
```


----------



## Final_Striker (11. Aug 2010)

Ship hat gesagt.:


> 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."


----------



## Tomate_Salat (11. Aug 2010)

=> 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:

```
$stack = array("Orange", "Banane");
//array_push($stack, "Apfel", "Himbeere");
print_r($stack);
```
danach wieder rein und test es wieder:

```
$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

```
$stack = array("Orange", "Banane");
$stack[]= "apfel";
$stack[]= "Himbeere";
print_r($stack);
```

MFG

Tomate_Salat


----------



## Ship (11. Aug 2010)

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


----------



## Tomate_Salat (11. Aug 2010)

Ship hat gesagt.:


> 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


----------



## Ship (11. Aug 2010)

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 
	
	
	
	





```
$array[] = 'Geld';
```
 das selbe wie 
	
	
	
	





```
array_push($array,'Geld');
```


----------



## Final_Striker (11. Aug 2010)

Schau mal hier: PHP code - 10 lines - codepad


PS: Was ich nicht verstehe, wieso geht man bei solchen Fragen und probiert es nicht einfach mal selbst aus???
Ist das so schwer oder nur unwissen oder faulheit?


----------



## Tomate_Salat (11. Aug 2010)

Tomate_Salat hat gesagt.:


> wobei arrays in php afaik eh keine fixe größe haben, könntest du es auch so adden
> 
> ```
> $stack = array("Orange", "Banane");
> ...





Ship hat gesagt.:


> Offenbar ist aber
> 
> 
> 
> ...



Ja das habe ich schon geschrieben...


----------



## Ship (11. Aug 2010)

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.


----------



## Tomate_Salat (11. Aug 2010)

Ship hat gesagt.:


> Wenn das so vereinfacht ist, warum gibt es dann überhaupt die Funktion array_push?


um mehrere Datensätze kompakt zuzuweisen



> Na egal. Auf jeden fall ist, "anzuhängen" bzw. "hinzufügen" in dem Satz ziemlich missverständlich


nicht wirklich, zumal es mit einem aussagekräftigen Beispiel unterlegt ist.


----------



## Ship (11. Aug 2010)

Tomate_Salat hat gesagt.:


> [...]
> 
> 
> nicht wirklich, zumal es mit einem aussagekräftigen Beispiel unterlegt ist.



In deinem!


----------



## Final_Striker (11. Aug 2010)

Ship hat gesagt.:


> Wenn das so vereinfacht ist, warum gibt es dann überhaupt die Funktion array_push?



Das ist ja auch nur ein Hinweis, fallst du nur EINE Variable hinzufügen möchtest, dass es auch einfacher geht. ;-)


----------



## Ship (11. Aug 2010)

Final_Striker hat gesagt.:


> Das ist ja auch nur ein Hinweis, fallst du nur EINE Variable hinzufügen möchtest, dass es auch einfacher geht. ;-)



Ja schon aber offenbar ist es auch ein Resourcen ersparnis, wenn man den kürzeren Weg nimmt.


----------



## vladimir75 (11. Aug 2010)

Was ist da so unverständlich?
//hier kannst Du die indizes angeben oder auch am Ende anhängen

```
$array[]=6;  //index 0, implizit
```


```
$array[5]=7; //index 5, expliziert
```


```
$array[]=8;  //index 6, implizit
```

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

ich mache da zu.

Vladimir


----------

