Auf letzten foreach-Durchlauf prüfen.

Hallo, nochmal. Mal wieder geht's um php.

Ich habe hier ein assoziatives array, das
ich mit foreach durchlaufen möchte, wo
jedes Element einmal mit einem <br> dran ausgegeben
wird. Bei der letzten Ausgabe soll kein <br> dran.

PHP:
$arr = array(
	'eintrag1' => 'hallo',
	'eintrag2' => 'tschüss',
	'eintrag3' => 'man sieht sich'); // assoziatives array

// Elemente ausgeben.
echo '<p>';
foreach ($arr as $ausg)
{
	echo $ausgb;
	if (!feof()) echo '<br>';
}
echo '</p>';

Nun, mit feof() kann man natürlich nicht prüfen, ob es sich um
den letzten Durchlauf handelt, kennt jemand aber vll so eine
Funktion?

Ich möchte for dem foreach auf jedenfall keine Int-Variable
mit der Anzahl der Elemente definieren und eine int-Variable
als Zähler, dass wenn dieser erreicht wird, kein <br>
eingefügt wird.

Es geht mir darum, das so kurz wie möglich zu gestalten...

Das hier ist jetzt das kürzeste, das ich hinbekommen habe

PHP:
$arr = array(
	'eintrag1' => 'hallo',
	'eintrag2' => 'tschüss',
	'eintrag3' => 'man sieht sich'); // assoziatives array

// Elemente ausgeben.
$a = count($arr);
$b = 0;
echo '<p>';
foreach ($arr as $asgV)
{
	echo $asgV;
	if (++$b < $a) echo '<br>';
}
echo '</p>';

Sieht aber nicht gerade schön aus...
 
RE: [php] Auf letzten foreach-Durchlauf prüfen.

Ich fürche dass es nicht anders gehen wird...
 
ja dann halt nich, ist ja nur ne Sache von unschönem Code.

P.S. zu deiner Sig: Hab Blip and Blop im übrigen auch durchgespielt, schön krank.
Zum Schluss musste Mario töten. lol
 
Wie wär's denn, wenn du nicht hinter jedem außer dem letzten Durchlauf einen Umbruch einfügst, sondern vor allen außer dem ersten. Dann geht's recht simpel mit:

PHP:
$first = true;
foreach ($arr as $ausg)
{
    if ( !$first )
        echo '<br/>';
    else
        $first = false;

    echo $ausg;
}
 
Speicherintensiv? WTF? Das ist eine beknackte BOOL-Variable, die belegt... lass mich rechnen... 1 Bit ;)

Wenn du die Performanz meinst, die wird davon nicht wesentlich beeinflusst. Zudem ist das die schnellste Methode, denn ein einzelnes Bit zu prüfen ist wohl wesentlich weniger aufwendig als Längenberechnungen von Arrays und das Hochzählen von Counter-Variablen.
 
Original von LX
Speicherintensiv? WTF? Das ist eine beknackte BOOL-Variable, die belegt... lass mich rechnen... 1 Bit ;)

Normalerweise ist das 1 Byte, da sich 1 Bit auf den meisten Architekturen schlecht addressieren lässt(bzw. die Variable die den Rest des Bytes nutzen würde)
 
Zurück
Oben