[php] string gebruiken als naam voor variable

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

  • Compusmurf
  • Registratie: Oktober 2003
  • Laatst online: 16-08-2024
Ik ben bezig met een dynamisch menu, maar loop tegen het volgende probleem.

Ik heb een aantal array's, namelijk voor de hoofditems en de subitems per hoofditem.

code:
1
2
3
4
5
$hoofditems = array(0=>"algemeen",1=>"nieuws",2=>"naam");
    
    //arrays voor subitems
    $subitem_algemeen = array (1=>"naam", 2=>"naam", 3=>"naam", 4=>"naam");
    $subitem_nieuws = array (1=>"naam", 2=>"naam", 3=>"naam


Nu gebruik ik een for loop om alles in de array hoofditems weer te geven, echter als dit hoofitem is geselecteerd wil ik ervoor zorgen dat de subitems worden weergegeven.

Ik haal dus eerst de geselecteerde waarde op en maak hier een nieuwe string van op de volgende manier:

code:
1
$samengesteldevar = '$subitem_'.$hoofditems[$i];


Als ik deze vervolgens ga tellen (count) dan krijg ik altijd 1. Als ik echter direct in de code verwijs naar 1 van de arrays werkt het wel. Ook een echo van de $samengestelde var levert de juiste waarde op die in dan in de count functie gebruik.

Ik hoop dat ik het een beetje duidelijk uit heb gelegd. Ik heb al gezocht maar kan niks vinden omdat ik eigenlijk ook geen duidelijke naamgeving voor dit probleem weet te verzinnen.

http://Compusmurf.xs4all.nl


  • Mir
  • Registratie: Maart 2001
  • Niet online

Mir

$$Test kan je hiervoor gebruiken geloof ik! :)

code:
1
2
3
$Test = "Blaat";
$$Test = "test";
echo $Blaat;  // results in 'test'


-overigens verplicht mij te zeggen dat je beter naar een andere oplossing kan zoeken.. meer dimensionale arrays bijv? (soort lists)-

[ Voor 41% gewijzigd door Mir op 19-06-2006 14:51 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Zoek eens hoe je moet werken met dubbele $$ :)

PHP:
1
2
3
4
$var = "kristof";
$$var = "hallo";
...
print $kristof; //hallo

[ Voor 11% gewijzigd door Snake op 19-06-2006 14:51 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • HyperioN
  • Registratie: April 2003
  • Laatst online: 12-02 13:45
Waarom maak zet je de subitems-arrays niet direct in de hoofditems-array?

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Kan je dan niet beter een 2-dimensionaal array gebruiken?
PHP:
1
2
3
4
5
$menu = array (
  algemeen => array (item1, item2, item3),
  nieuws => array (item1, item2, item3),
  naam => array (item1, item2, item3)
);

Volgens mij is zoiets handiger.
Zoek anders eens naar associatieve arrays. :)

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 14:13

Cyphax

Moderator LNX
Ik zou dit zelfs helemaal niet zo doen eigenlijk. Je krijgt zo wel slecht leesbare code. Je kunt echt beter die 2 variabelen in een array zetten met meerdere dimensies.
$subitem["algemeen"] en $subitem["nieuws"] dus.

Saved by the buoyancy of citrus


  • Compusmurf
  • Registratie: Oktober 2003
  • Laatst online: 16-08-2024
Tnkx voor de goede reply's, ik ga ff testen of die multidimensionale arrays een stuk beter werken. Waarschijnlijk wel want het ziet er dan wat beter uit. Ik post de resultaten asap.

http://Compusmurf.xs4all.nl


  • Compusmurf
  • Registratie: Oktober 2003
  • Laatst online: 16-08-2024
ik heb het nu grotendeels werken, ik zit alleen met 1 klein probleempje nog, hoe kan ik alleen de namen van de subarrays uitlezen. Als dit niet kan heb ik al een oplossing om deze gewoon vooraan in de array te zetten maar als het makkelijker kan is dat natuurlijk beter.

http://Compusmurf.xs4all.nl


  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
PHP:
1
array_keys($menu)

van php.net ;)

zie hier

[ Voor 117% gewijzigd door Gonadan op 19-06-2006 15:14 ]

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Verwijderd

of je doet een foreach($array as $key => $value)

  • Compusmurf
  • Registratie: Oktober 2003
  • Laatst online: 16-08-2024
Het is allemaal gelukt dus hartelijk bedankt voor jullie hulp.

http://Compusmurf.xs4all.nl


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Een beetje zoeken voor je een topic opent mag wel hoor. ;) Je vraag is hier al talloze keren voorbij gekomen, en elke keer weer volgt er hetzelfde antwoord op. Zoeke naar 'php variabele variabelen' in Programming. :)

Omdat dit intussen wel een uitgekauwd onderwerp is doe ik dit topic op slot.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.