array 1 diep naar xx diepte
$my_array[0] = "belgie"
$my_array[1] = "prov_Ant"
$my_array[2] = "Dessel"
$my_array[3] = "schoolstraat"
...
nu zou ik deze willen omvormen tot
$my_array['belgie']['prov_Ant']['Dessel']['schoolstraat'] = "vb: 12 huizen";
dit is maar een onozel voorbeeld maar de array kan langer niet tot 4 items
ik kan verder uitbreiden met de wereld bvb. het is louter gebruikt als voorbeeld.
het is namelijk zo dat er meerdere provincies zijn en dat hierbij belgie de root index gaat zijn van de array en verder dieper uitsplitsen.
ipv met numerieke indexen te werken.
uitdaging: waarin ik niet lijk te lukken is de array van 1 index diep herschrijven naar een array met meerdere dieptes..
thx
Ik snap je probleem niet, je wilt arrays nesten met tekst i.p.v. numeriek. Maar wat is er moeilijk/ een probleem?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// definieren kan zo:
$dessel = array("schoolstraat" => 12, "stationstraat" => 10);
$andere = array("kerkeweg" => 33, "straatnaam" => 15);
// of zo:
$antwerpen = array();
$antwerpen["dessel"] = $dessel;
$antwerpen["andere"] = $andere;
// of in elkaar verwerkt:
$my_array = array("belgie" => array("Antwerpen"=>$antwerpen));
var_dump($my_array);
?>
// definieren kan zo:
$dessel = array("schoolstraat" => 12, "stationstraat" => 10);
$andere = array("kerkeweg" => 33, "straatnaam" => 15);
// of zo:
$antwerpen = array();
$antwerpen["dessel"] = $dessel;
$antwerpen["andere"] = $andere;
// of in elkaar verwerkt:
$my_array = array("belgie" => array("Antwerpen"=>$antwerpen));
var_dump($my_array);
?>
Maar zoals je ziet is dit een hele omslachtige manier om een lijstje met gegevens op te bouwen, en raad ik andere manieren aan. (classes of xml iets)
het probleem is anders.
de data uit men database komt via een view gemaakt door de DBA uit naar mijn php pagina
de data uit de database zal in volgende vorm zijn
$datacol1 = "/belgie/antwerpen/dessel/schoolstraat/"; //fulldescription
$datacol2 = "12"; //aantal gebouwen
Een explode op $datacol1 "/" geeft me dan de array
nu zou er een loop lusje (foreach) rond de exploded data moeten komen zodat de array geherstructureerd wordt
Anders;
Je wil van een 1D array een 4D array maken.
En liefst waarschijnlijk nog dat het nieuwe aantal dimensies dynamisch wordt gezet op het aantal elementen van de oude array.
Waar n-dimensionale array's voor dienen:
Een voorbeeld:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// $luchtdrukken: 3D array
$x = 51; // breedtegraad
$y = 3; // lengtegraad
$z = 200; // hoogte
$gekozenLuchtdruk= $luchtdrukken[$x][$y][$z];
?>
// $luchtdrukken: 3D array
$x = 51; // breedtegraad
$y = 3; // lengtegraad
$z = 200; // hoogte
$gekozenLuchtdruk= $luchtdrukken[$x][$y][$z];
?>
$luchtdrukken bevat een 3D rooster aan gegevens.
Op basis van 3 onafhankelijke variabelen haal je 1 waarde.
Hier heb je bv. de gekozen luchtdruk op een bepaalde locatie in onze atmosfeer, op basis van coördinaten (x,y) + hoogte.
Dingen als België, Antwerpen, Dessel, Schoolstraat zijn helemaal niet onafhankelijk.
Hoe zie jij je vraag in dit verhaal?
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
ik wil gewoon mijn resultaten groepen.
alles van belgie in 1 mutlti-dimensionale array
alles van prov_ant
alles van dessel
mooi groeperen in een array.
daarna is het makkelijker een lus uit te voeren rond een bepaalde sector
nu heb ik eigenlijk genoeg ervaring maar om arrays te definieren in een andere variable wist ik niet dat dit mogelijk was, kan iemand mij uitleggen of dit beschreven staat op www.php.net
Thx
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
ik ben eruit..
op regel 6 heb ik nog single quotes moeten adden omdat soms
$my_array[$x] met spaties en - streepkes was
de creatie van de array dat toch niet zo leuk vond
vandaar single quotes errond dat iedereen weet dat het een string is.
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door bart
Ik en andere komen met een nette en simpele oplossingen (die van mij is zelfs 2 regels) en je negeert het gewoon...
Als je dan perse alles in array wilt hebben kies dan gewoon voor de oplossing van Arjan. Deze lijkt te kloppen voor de situatie alhoewel je je moet afvragen of je niet gewoon een aantal queries moet definieren, iof gezien je view voorbeeld je database model moet aanpassen.
1 probleem wat als het resultaat niet meer evenveel dieptes zal hebben maar een dynamish aantal,
het is namelijk zo dat ik om het simpel te houden een vb, met land,prov,stad,straat heb genomen
in werkelijkheid weet ik niet hoeveel dieptes men resultaat gaat hebben.
er zou ineens nog bij kunnen komen huis6/kamer1/kast7/schuif3/ bvb.
het gaat hier om een stocksysteem over verschillende landen gespreid, iedereen kan zijn stock zo diep maken als hij zelf wenst.
sry voor de crapy most evel "eval" code ever
maar rijk me een dynamishe oplossing en ik herbekijk het