php: array bei funktionsaufruf übergeben?!

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
bce
Beiträge: 858
Registriert: Do 14.Okt, 2004 18:46
Kontaktdaten:

php: array bei funktionsaufruf übergeben?!

Beitrag von bce »

hallo.
kann man das?!
das man keine string oder integer variable an eine funktion übergibt...


die funktion:

Code: Alles auswählen

function punkte_berechnen($array1)
	{
    for ($i = 0; $i <= count($array1)-1; $i++) {
        echo "<br>".$i. "---" . $array1[$i];
	    }    
	
	//return
	}
der aufruf

Code: Alles auswählen

punkte_berechnen($ligenarray);
$ligenarray ist ein normales array und mit werten gefüllt.

in der funktion wird zwar erkannt das es z.b. 6 einträge hat.. aber der inhalt wird nicht ausgeben....

was muss ich ändern, damit das array ordentlich übergeben wird?!

thx
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Schleife ist falsch:

Code: Alles auswählen

function punkte_berechnen($array1) 
   { 
    for ($i = 0; $i < sizeof($array1); $i++) { 
        echo "<br>".$i. "---" . $array1[$i]; 
   }    
    return 
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Gichtus
Beiträge: 107
Registriert: Mi 21.Jan, 2004 23:13
Wohnort: Arnstadt

Beitrag von Gichtus »

Code: Alles auswählen

Anmerkung:  Die Funktion sizeof() ist ein Alias für count().
Quelle: http://de3.php.net/manual/de/function.count.php

Sonst seh ich keinen Unterschied (bis auf "<=x-1" -> "<x")

/e: eben mal Apache angeworfen (inkl. PHP5)

Code: Alles auswählen

<?php
function punkte_berechnen($array1)
  {
  for ($i = 0; $i <= count($array1)-1; $i++) 
    {
    echo "<br>".$i. "---" . $array1[$i];
    }   
  //return
  }


$feld=array("bli","bla","blubb",1,2,3,4,5,6,78);

punkte_berechnen($feld);
?>
Ausgabe:

Code: Alles auswählen

0---bli
1---bla
2---blubb
3---1
4---2
5---3
6---4
7---5
8---6
9---78
Also sollte es funktionieren :confused:
Und wenn ich bei Oxpus' Version das "return" rausnehme, funktioniert sie genauso.
Zuletzt geändert von Gichtus am Do 17.Feb, 2005 18:48, insgesamt 2-mal geändert.
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, sizeof() ist ein Alias von count(), der aber zuweilen korrektere Ergebnisse liefert. Keine Ahnung warum ¢#
Und der Unterschied ist in der Performance (wenn auch nur marginal):
count($array)-1 wird nämlich bei jedem Lauf der Schleife durchgeführt und daher ist es ratsam, nicht <= sondern nur < zu sagen und -1 nicht zu berechnen.

Aber davon abgesehen:
Geht es jetzt nun?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
bce
Beiträge: 858
Registriert: Do 14.Okt, 2004 18:46
Kontaktdaten:

Beitrag von bce »

ok.. funktioniert nun..

jo, bei count($array)-1 kann man sich die -1 sparen wenn man < prüft und nicht <=
Antworten