PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Php - array in unter-arrays aufspalten


Mark
2008-03-21, 08:52:21
gelöscht

ethrandil
2008-03-21, 10:05:09
Ich schreib mal einfach frei schnauze:


for ($i=0; $i<count($array); $i++) {
//ein mehrdimensionales array2 wird erzeugt.
//die "unterarrays" enthalten gruppe und den rest des namens
$array2[$i]=explode('_', $array[0], 2);

//Für jede Gruppe brauchen wir ein array
$result[$array2[$i][0]] = array();
};

for($i=0; $i<count($array2); $i++) {
$group_value = $array2[$i]; //[gruppenname, wert]
$grouparray = $result[$group_value[0]];
$grouparray[] = $group_value[1]; //Wert anhängen
}

echo $result;


?

Mark
2008-03-21, 10:13:37
gelöscht

ethrandil
2008-03-21, 10:45:44
tjaa, da hab ich leider grade keinen alufenden webserver zum testen, im prinzip sollte meins aber funktionieren... ich weiß aber nicht ganz genau ob ich a) das result-array richtig baue... das sollte nach der ersten schleife aussehen wie: Array ( [landschaften] => Array ( ) , [gebaude] => Array ( ) , [personen] => Array ( ) )

und beim 2. weiß ich nicht ganz genau, ob das mit dem anhängen stimmt, allerdings hab ich das auf einer seite so gesehen...

Tommes
2008-03-21, 11:21:27
<?
$array1 = array("landschaften_bild1.jpg", "personen_bild1.jpg", "landschaften_bild2.jpg", "gebaeude_bild1.jpg");
$array2 = array();
foreach($array1 as $bild) {
$bild = explode("_", $bild);
$array2[$bild[0]][] = $bild[1];
}

print_r($array2);
?>

Ausgabe:

Array
(
[landschaften] => Array
(
[0] => bild1.jpg
[1] => bild2.jpg
)

[personen] => Array
(
[0] => bild1.jpg
)

[gebaeude] => Array
(
[0] => bild1.jpg
)

)

Mark
2008-03-21, 11:54:04
gelöscht

Tommes
2008-03-21, 12:11:16
Ja so hab ich es auch am liebsten ;)

Mark
2008-03-21, 12:18:31
gelöscht

Tommes
2008-03-21, 12:39:19
foreach($array2 as $group => $items) {
echo $group."<br /><table>";

for($i = 0; $i < count($items); ++$i) {
if ($i % 5 == 0 ){ echo "<tr>"; }
echo "<td>".$items[$i]."</td>";
if ($i % 5 == 0 ){ echo "</tr>"; }
}

if ($i < 5) echo "</tr>";

echo "</table>";

}
fast & dirty & unchecked

Mark
2008-03-21, 12:56:50
gelöscht