Warning: array_map() expects argument 2 to be an array
Der Schwabe
- php
0 lulu0 Der Schwabe0 lulu
hallo zusammen
Bin jetzt am ende mit meinem latein und flehe um hilfe.
Ich muss eine csv-datei auslesen und in eine html tabelle schreiben.
Das script äuft auch aber ich bekomme immer diese fehlermeldung die eine warnung ist:
Warning: array_map() expects argument 2 to be an array in /home/httpd/html/test/status.php on line 105.
Ich komm nicht auf den grund der meldung.
Das ist ein teil meines codes
elseif ($newdata == 2)
{
$result = "auswertung.csv";
$fp = fopen($result,"r");
while(!feof($fp))
{
$output = fgetcsv($fp,1024,";");
$check_output = array_map("suche_leer", $output);
if ($check_output[0]=="Call-Nr" || $check_output[4]=="i.A" )
{
continue;
}
else
{
printf("<tr><td width='120' class="g9">$check_output[0]</td><td width='70' class="g9">$check_output[1]</td><td width='120' class="g9">$check_output[2]</td><td width='120' class="g9">$check_output[3]</td><td width='120' class="g9">$check_output[4]</td></tr>");
}
}
printf("</table>");
fclose($fp);
}
und das ist die funktion die ich mit array_map aufrufe
function suche_leer($inhalt)
{
if ($inhalt=="")
{
return $inhalt = " ";
}
else
{
return $inhalt;
}
}
Ich hoffe jemand kann mir helfen
vielen dank im voraus für Eure hilfe
mfG Der Schwabe
Huhu Schwabe
Warning: array_map() expects argument 2 to be an array in /home/httpd/html/test/status.php on line 105.
Ich hoffe jemand kann mir helfen
Dein Englischlehrer vielleicht...
oder was verstehst Du an obiger Fehlermeldung nicht?
Der 2te Parameter für array_map() soll vom Typ Array sein.
Viele Grüße
lulu
hallo lulu
Der 2te Parameter für array_map() soll vom Typ Array sein.
vielen dank für Deine englisch-nachhilfe :-)
aber das habe ich (ob Du's glaubst oder nicht) auch verstanden.
Das hilft mir aber leider nicht weiter denn die fehlermeldung bleibt :-), denn mein 2ter parameter ist ein array
$output = fgetcsv($fp,1024,";");
$check_output = array_map("suche_leer", $output);
vielleicht kann mir ja doch jemand helfen außer mein englischlehrer und Du.
vielen dank im voraus für eure hilfe
mfG Der Schwabe
Huhu Schwabe
Das hilft mir aber leider nicht weiter denn die fehlermeldung bleibt :-), denn mein 2ter parameter ist ein array
fgetcsv() returns FALSE on error, including end of file.
Also liefert fgetcsv() nicht immer ein Array, besonders bei EOF nicht.
[..]
while(!feof($fp))
{
$output = fgetcsv($fp,1024,";");
$check_output = array_map("suche_leer", $output);
[..]
versuch es mal so
while($output = fgetcsv($fp,1024,";") )
{
$check_output = array_map("suche_leer", $output);
[..]
Viele Grüße
lulu
btw.: Hier noch eine nützliche Hilfsfunktion, damit kann man solche Fehler auch abfangen.
function require_array(&$var)
{
if(!is_array($var)) $var=array($var);
}
Für Dein Beispiel wäre das dann
while(!feof($fp))
{
$output = fgetcsv($fp,1024,";");
require_array($output);
$check_output = array_map("suche_leer", $output);
[..]
wobei es in diesem Fall deutlich hübscher ist, das fgetcsv in die While-Condition zu stecken.