1. #1
    Bram's Avatar
    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
    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 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 Code:
    $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'
    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  

  2. #2
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    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
    no votes  

  3. #3
    0n3Liner's Avatar
    Registered
    10/09/03
    Location
    daar
    Posts
    1,198
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    2/2
    is $categories variabel?
    no votes  

  4. #4

    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.

    PHP Code:
    echo "Value: ".current($categories)."<br/>Key: ".key($categories); 
    En om dan ook nog het eerste element uit die array te halen:

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

  5. #5

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    PHP Code:
    reset($categories);
    $cat = isset($_GET['cat']) ? $_GET['cat'] : current(current($categories)); 
    edit: dien voor me nie gelezen dus .
    no votes  

  6. #6
    Bram's Avatar
    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in