Archief - Help: array

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Devil9L

Legacy Member
ik zit hier al een paar uur te klooien met een array

$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

Jerre Muesli

Legacy Member
Maak gewoon een nieuwe array ?
$new_array[$my_array[0]][$my_array[1]][$my_array[2]][$my_array[3]] = "12 huizen";

?

Devil9L

Legacy Member
okee,
idd, tot zover the easy way :)

maar
het resultaat dat ik heb komt uit de database

$databasecol1 = "/belgie/provant/dessel/schoolstraat/";
$databasecol2 = "12";

dus met een explode op $databasecol1 op char /
en dan op een array trekken van de beschreven vorm.

Jerre Muesli

Legacy Member
Aah dus dat is het probleem :)

Wel ik zou gewoon een string maken van alle keys en den een eval op doen zodat je een echte array krijgt zoals hier.

PHP:
$my_array = array('belgie','provant','dessel','schoolstraat');
$value = 12;
$new_array = "\$new_array = (";
for($x=0;$x<sizeof($my_array);$x++){
	$new_array .= "array(".$my_array[$x]."=>";
	$closure .= ")";

}
$new_array.= $value.')'.$closure.';';
eval($new_array);
print_r($new_array);

Nu moet ik wel zeggen dat het wat strontcode is die wel beter kan maar je hebt al een mogelijk idee hè.

Devil9L

Legacy Member
thx,
ik wist eigenlijk niet dat je een array kon definieren in een andere variable
maar volgens beschreven code zou het wel lukken..
ga ik dan zo dadelijk ook direct proberen

thx

Devil9L

Legacy Member
saved my day..
dit maakt in 5 minuten goed wat me op een 4tal uren niet gelukt was :)

de eval functie had ik nog nooit gebruikt om eerlijk te zeggen

eval &#8212; Evaluate a string as PHP code

kleine note:

in de for lus
$new_array .= "array(".$my_array[$x]."=>";
maak er even
$new_array .= "array('".$my_array[$x]."'=>";

singe quotes added.
waarom?
omdat ik een locatie had met spaties en -
tussen en de array kon er niet mee weg eval crashte ook

thx a lot
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan