php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
hilfe bei array bzw. gruppenwechsel


 
microbe
26-02-2009, 18:29 
 
Guten Tag.

hab eine Tabelle mit id, neigung, gruppe:

1 tauchen a
2 schwimmen a
3 radfahren b
4 wandern b
5 snowboarden c
6 langlauf c

lasse mir die Neigungen hiermit nach den Gruppe ausgeben:


foreach($txt_neigung as $neigung=>$val) {
$neu = $val[2];
if ($alt != $neu) {
echo"gruppe".$val[2]."";
echo"".$val[1]."";
$alt = $neu;
} else {
echo"".$val[1]."";
}
}


Funktioniert soweit.
Möchte nun jede Gruppe in ein DIV bekommen. Krieg's einfach nicht hin. Könnte mir jemand helfen, das Brett vom Kopf zu lösen?!
Bitte, danke!

 
ghostgambler
26-02-2009, 18:59 
 
<div>
foreach($txt_neigung as $neigung=>$val) {
$neu = $val[2];
if ($alt != $neu) {
</div><div>
echo"gruppe".$val[2]."";
echo"".$val[1]."";
$alt = $neu;
} else {
echo"".$val[1]."";
}
}
</div>


vom Prinzip her.

 
microbe
26-02-2009, 19:23 
 
danke für den denkanstoss!

passt an-für-sich super, nur leider wird - deinem vorschlag folgend - zuerst ein leeres div erzeugt.
:eek:

 
wahsaga
26-02-2009, 19:39 
 
Na dann mach halt noch eine Abfrage mit rein, ob es sich um das erste Auftreten des Gruppenwechsels handelt.

 
Wurzel
26-02-2009, 19:47 
 
warum ein gruppenwechsel bei so einer simplen abfrage? warum nichtforeach($txt_neigung as $neigung=>$val)
$neu[trim($val[2])][] = $val[1];

foreach($neu as $v)
echo '<div>'.implode('<br>', $v).'</div>'; ?


@wahsaga
nice to read you.

 
php_fussel
26-02-2009, 23:20 
 
So wäre es auch möglich ...


foreach($txt_neigung as $neigung=>$val) {
$neu = $val[2];
if ($alt != $neu) {
if($bool) echo "</ul></ul></div>";
echo "<div class='kategorie'>
<ul class='klasse'>
<li>Gruppe: ".$val[2]."</li><ul class='neigung'>";
echo "<li>".$val[1]."</li>";
$alt = $neu;
}
else {
echo "<li>".$val[1]."</li>";
}
$bool=true;
}
echo "</ul></ul></div>";


Gruß php_fussel

EDIT: Zum Testen:

$txt_neigung =
array(array('1','tauchen','a'),array('2','schwimmen','a'),array('3','radfahren','a'),
array('4','wandern','b'),array('5','snowboarden','c'),array('6','langlauf','c'));

 
microbe
27-02-2009, 12:47 
 
Vielen Dank für Eure Hilfe!

@Wurzel: Sehr geil & gekauft!


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:31 Uhr.