Hoi,

Ik wil graag het volgende :


foreach ($gegevens as $key => $value){

     echo 'key '.strtolower($gegevens[$i]).' bevat: '.$value.'<br>';
}


geeft bijvoorbeeld:

key huisnummer_cor bevat: 45
key toevoeging_cor bevat:
key postkode_cor bevat: 8701KX
key rechtsvorm bevat: 01


Tot zover geen probleem. Ik zou echter graag zien dat de key's automatisch en var worden. Dus dat de var $huinummer wordt aangemaakt enzovoort...
<?php
foreach ($gegevens as $key => $value){

echo 'key '.strtolower($gegevens[$i]).' bevat: '.$value.'<br>';
${$gegevens[$i]} = $value;
}
?>
En waarom zou je dat willen? Ik kan me werkelijk waar *geen enkele* nuttige toepassing hiervan bedenken.
Om makkelijker ipv $gegevens['blaat'] nu $blaat kan gebruiken
Oh, dus dat is belangrijk? Nee, absoluut niet!

Als je echt denkt dat het beter is (niet dus...) moet je eens kijken naar extract(), dat is *veel* netter.
Richard van Velzen schreef op 15.01.2010 11:47
Oh, dus dat is belangrijk? Nee, absoluut niet!

Als je echt denkt dat het beter is (niet dus...) moet je eens kijken naar extract(), dat is *veel* netter.


slecht geslapen? Voor mij werkt het prima!
Klaasjan Boven schreef op 15.01.2010 16:19

slecht geslapen? Voor mij werkt het prima!


Het werkt natuurlijk wel, maar het is niet aan te raden. Je kan het beste gewoon een array vullen met gegevens.
Over het algemeen is het niet echt nodig of verstandig om op die manier nieuwe variabelen te maken. Zeker in grote scripts wil je graag weten waar variabelen vandaan komen en $gegevens['blaat'] zegt dan meer dan $blaat alleen.

Als je toch graag variabelen wilt maken van de associatieve keys van een array, dan zou ik wel de [php]extract[/php]() functie gebruiken. Die is daar immers voor gemaakt ;-)
De gegevens komen uit een DB en zijn later nodig. Het scheelt gewoon een hoop tikwerk vandaar mijn vraag. IK begrijp dat extract het ook kan die zal ik in het vervolg gebruiken
Ik heb wellicht beter geslapen.... :D

alsnog:
Het gaat daarnaast wel 'ten koste van' je geheugen (ookal is het niet veel). Je zult wel je array weg moeten gooien om het te compenseren.

Persoonlijk zou ik het wel in een array laten staan omdat je daar juist zo fijn doorheen kunt 'lopen'.

Een andere 'oplossing' zou mysql_fetch_object kunnen zijn, maar dan is het nog wel iets meer tikwerk.

p.s.: Waar haal je '$i' vandaan? :p

Reageren