leere Arrays nicht anzeigen
Christian Leipnitz
- php
Hallo zusammen,
ich lesen eine CSV-Datei aus und stelle die Informationen über drei Arrays auf einer Seite dar.
Wichtig ist mir dabei, dass diese Informationen untereinander stehen (array[4]<br>array[5]<br>array[6]).
So weit so gut - so lange jeder der drei Arrays einen Inhalt hat.
Wenn allerdings einer der Arrays leer ist, wird eine Leerzeile angezeigt, was nicht besonders "schön" aussieht.
Gibt es eine Möglichkeit, diesen Umstand zu umgehen?
Also den leeren Array gar nicht erst anzeigen zu lassen?
Wobei dann wahrscheinlich der Zeilenumbruch (<br>) anders eingebunden werden müßte.
Mit den Befehlen "empty" und "unset" hatte ich bisher keinen Erfolg.
Besten Dank im Voraus,
hi!
for ($i = 0;$i < count($array);$i++) {
if ($array[$i] != "") {
echo $array[$i];
if ($i == count($array) - 1) echo "<br";
}
}
Gruß
DMIII
upsi
if ($i < count($array) - 1) echo "<br";
Gruß
DMIII
Hallo zusammen,
ich lesen eine CSV-Datei aus und stelle die Informationen über drei Arrays auf einer Seite dar.
Wichtig ist mir dabei, dass diese Informationen untereinander stehen (array[4]<br>array[5]<br>array[6]).
So weit so gut - so lange jeder der drei Arrays einen Inhalt hat.
Wenn allerdings einer der Arrays leer ist, wird eine Leerzeile angezeigt, was nicht besonders "schön" aussieht.
Gibt es eine Möglichkeit, diesen Umstand zu umgehen?
Also den leeren Array gar nicht erst anzeigen zu lassen?
Wobei dann wahrscheinlich der Zeilenumbruch (<br>) anders eingebunden werden müßte.
Mit den Befehlen "empty" und "unset" hatte ich bisher keinen Erfolg.
hi,
soviel ich weiss, kann man einfach schreiben:
if($array[4])
print $array[4]."<br>";
if($array[5])
print $array[5]."<br>";
if($array[6])
print $array[6]."<br>";
bjoern
Aloha!
hi,
soviel ich weiss, kann man einfach schreiben:
if($array[4])
print $array[4]."<br>";
if($array[5])
print $array[5]."<br>";
if($array[6])
print $array[6]."<br>";
Nein, kann man nicht. Denn wenn der Inhalt des Arrays zu "false" evaluiert, dann gibts keine Ausgabe, obwohl eine erfolgen müsste. Beispielsweise kann das Array das Zeichen "0" (Null) enthalten - diese Zahl würde nicht ausgegeben.
Wenn schon, dann sollte man auf leere Variable prüfen:
if(!empty($array[4]))
print $array[4]."<br>";
if(!empty($array[5]))
print $array[5]."<br>";
if(!empty($array[6]))
print $array[6]."<br>";
Die Methode mit join() ist aber noch besser, schneller und trickreicher. :)
- Sven Rautenberg
Hallo zusammen,
Gibt es eine Möglichkeit, diesen Umstand zu umgehen?
Also den leeren Array gar nicht erst anzeigen zu lassen?
Wobei dann wahrscheinlich der Zeilenumbruch (<br>) anders eingebunden werden müßte.
du könntest leere Elemente entfernen und die Anzeige mit Hilfe
von join machen.
Also z.B.
$items = array( 'Apfel','','Birne','','','Pflaume','Säbelzahntiger','Orange' );
$show = array_filter($items);
echo join('<br>',$show);
Viele Grüße
lulu
Hallo lulu,
du könntest leere Elemente entfernen und die Anzeige mit Hilfe
von join machen.
Also z.B.
$items = array( 'Apfel','','Birne','','','Pflaume','Säbelzahntiger','Orange' );
$show = array_filter($items);
echo join('<br>',$show);
Super, funktioniert wunderbar.
Ein dickes "Dankeschön" an Dich - und natürlich auch an die anderen - für die schnelle Hilfe!
Viele Grüße,