-
08-09-2007, 02:34 #1Approved 9-lifer
- Registered
- 01/08/02
- Location
- Gent
- Posts
- 9,675
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/361
PHP: eerste element uit associatieve array?
Oké, ik zie verzeker iets over het hoofd, but here goes anyhow.
Ik zit met een array om m'n subnav op te bouwen in een nieuwe site
Nu haal ik deze via $_GET op welke ie moet geven, maar ik wil dus dat als er nog geen categorie is geselecteert, en dus enkel een pagina is geselecteert de categorie toch wordt gezet op de eerste in de subarray.PHP Code:$categories = array(
'home' => array('overview' => 'Overview', 'edit' => 'Edit Profile'),
'users' => array('add' => 'Add user', 'edit' => 'Edit user', 'delete' => 'Delete users'),
'news' => array('add' => 'Add news', 'edit' => 'Edit news', 'delete' => 'Delete news'),
'polls' => array('add' => 'Add poll', 'edit' => 'Edit poll', 'delete' => 'Delete polls'),
'dloads' => array('add' => 'Add download', 'delete' => 'Delete downloads'),
'blog' => array('add' => 'Add blog-item', 'edit' => 'Edit blog-item', 'delete' => 'Delete blog-items'),
'pfolio' => array('add' => 'Add piece', 'edit' => 'Edit piece', 'delete' => 'Delete pieces'));
Nu dacht ik dit zo te doen:
maar dat blijkt dus niet te werken... Iemand die me ff kan helpen?PHP Code:$cat = isset($_GET['cat']) ? $_GET['cat'] : $categories[0][0];
Edit: bijkomstig probleem: ie moet de key aan $cat toewijzen, dus 'add' bv ipv 'Add news'Last edited by Bram; 08-09-2007 at 02:43.
If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.no votes
-
-
08-09-2007, 02:45 #2Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Dit gaat natuurlijk niet werken, want [0][0] bestaat niet in je array.Code:$categories[0][0];
Wat je kan doen is een work-around:
Maar mss heeft iemand een betere oplossingCode:$menu= array('home','users',....); $categories = array (...); $cat = isset($_GET['cat']) ? $_GET['cat'] : $categories[$menu[0]][0];
Edit: Voor je subarray werk je beter met gewone nummers ipv alles een naam te geven, dat gaat je veel werk besparen lijkt mij
Edit 2: Wanneer je dan via $_GET['cat'] ophaalt wat die moet tonen dan moet je natuurlijk nog even met een lusje door je array $menu gaan om z'n plaats te bepalen
no votes
-
08-09-2007, 03:28 #3
is $categories variabel?
no votes
-
08-09-2007, 11:11 #4Member
- Registered
- 22/06/04
- Posts
- 808
- iTrader
- 0
- Mentioned
- 0 Post(s)
Je wil gewoon de Home array er uit halen als je nog geen key gekozen hebt?
Dan staat de current key op de eerste index.
En om dan ook nog het eerste element uit die array te halen:PHP Code:echo "Value: ".current($categories)."<br/>Key: ".key($categories);
PHP Code:echo "Value: ".current(current($categories))."<br/>Key: ".key(current($categories));
no votes
-
08-09-2007, 11:19 #5Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
edit: dien voor me nie gelezen dusPHP Code:reset($categories);
$cat = isset($_GET['cat']) ? $_GET['cat'] : current(current($categories));
.
no votes
-
08-09-2007, 13:01 #6Approved 9-lifer
- Registered
- 01/08/02
- Location
- Gent
- Posts
- 9,675
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/361
oké. Ik ging het ff moeilijk zoeken, ik wist dus niet van het bestaan van de key() functie...
key(current($categories)) werkt echter niet, key($categories[$page]) wel.
Alvast merci.If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.no votes
