Archief - PHP: eerste element uit associatieve 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.

Bram

Legacy Member
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
PHP:
$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 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.
Nu dacht ik dit zo te doen:
PHP:
$cat = isset($_GET['cat']) ? $_GET['cat'] : $categories[0][0];
maar dat blijkt dus niet te werken... Iemand die me ff kan helpen?

Edit: bijkomstig probleem: ie moet de key aan $cat toewijzen, dus 'add' bv ipv 'Add news'

Cycloon

Legacy Member
Code:
$categories[0][0];

Dit gaat natuurlijk niet werken, want [0][0] bestaat niet in je array.

Wat je kan doen is een work-around:

Code:
$menu= array('home','users',....);

$categories = array (...);

$cat = isset($_GET['cat']) ? $_GET['cat'] : $categories[$menu[0]][0];

Maar mss heeft iemand een betere oplossing :)

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 ;)

AncientRites

Legacy Member
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.

PHP:
echo "Value: ".current($categories)."<br/>Key: ".key($categories);

En om dan ook nog het eerste element uit die array te halen:

PHP:
echo "Value: ".current(current($categories))."<br/>Key: ".key(current($categories));

killgore

Legacy Member
PHP:
reset($categories);
$cat = isset($_GET['cat']) ? $_GET['cat'] : current(current($categories));

edit: dien voor me nie gelezen dus :p.

Bram

Legacy Member
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.
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