Problemer med multi dimensionelt array

Tags:    php

Jeg sidder og skal have gemt nogle informationer fra min database i et multidimensionelt array, og problemet er at det ikke virker helt efter planen. Jeg henter min information fra databasen og skal gemme dem i et array der hedder $city_scape[x][y] = noget.

$result = mysql_query("select * from buildings");
while($row = mysql_fetch_array($result)) {
$city_scape["$row[x]"]["$row[y]"] = $row[owner_id];
}

Problemet kommer så når det skal ud igen.

foreach ($city_scape[8] as $y => $ownerid) {
echo "$y ";
echo "$ownerid";
}

her er problemet så at $ownerid er tom!

en anden ting jeg har prøvet er:

echo "$city_scape[8][6]";

Hvilket heller ikke virker!



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jeg sidder og skal have gemt nogle informationer fra min database i et multidimensionelt array, og problemet er at det ikke virker helt efter planen. Jeg henter min information fra databasen og skal gemme dem i et array der hedder $city_scape[x][y] = noget.

$result = mysql_query("select * from buildings");
while($row = mysql_fetch_array($result)) {
$city_scape["$row[x]"]["$row[y]"] = $row[owner_id];
}

Problemet kommer så når det skal ud igen.

foreach ($city_scape[8] as $y => $ownerid) {
echo "$y ";
echo "$ownerid";
}

her er problemet så at $ownerid er tom!

en anden ting jeg har prøvet er:

echo "$city_scape[8][6]";

Hvilket heller ikke virker!


Du kan gøre det lidt anderledes, så hvis jeg har forstået dig, hehe.

Fx:

$res = mysql_query($q) or die(mysql_error());
$array = array();
while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) {
foreach ($row as $k => $v) $array[$k][] .= $v;
}

så kan du få fat i dataen ved fx at skrive $array['row'][$key]
hvis du fjerne MYSQL_ASSOC, kommer rækkerne også ind i arrayet med tal, dvs ikke kun rækkens navn, men også rækkens nummer, hvis du forstår..
$array['row'][$key] er det samme som fx $array[0][$key]

Håber det hjælper :)

Mvh Bob



indexes i et array skal enten være tal eller tekst, ikkr en eller anden udefineret konstant. Så skal du måske fortælle at det er et array?

$city_scape = array();
$result = mysql_query("select x,y,owner_id from buildings");
while($row = mysql_fetch_array($result)) {
$city_scape[$row['x']][$row['y']] = $row['owner_id'];
}




Kan ikke få det til at virke, prøver med en lidt bedre forklaring. I min database har jeg gemt en masse data som koordinater, altså som x,y. Derfor vil jeg gerne gemme disse data som:

$array[x][y] = noget

fremfor at skulle lave et query til databasen for hvert felt, da der er over 200 rækker!

Når jeg så har hentet mit data vil jeg gerne kunne sammenligne koordinaterne med de koordinater som skal vises på skærmen og derved kunne bestemme hvordan hvert koordinat skal se ud.



t