tags:

views:

704

answers:

2

I am running this DB call to get me multi-dimensional array I am trying to get the keys of each but when I try it comes up blank or as array.

 $root_array = array();
         $sites = $this->sites($member_id);
         foreach ($sites as $site){
          $records = $this->db->select('p.name as place_name, p.id as place_id,p.active as place_status')
          ->from('places p')
          ->join('members_permissions pm','pm.sites_id = p.sites_id and pm.members_id ='.$member_id)
          ->where('p.active', 0)
          ->get();

          $places = $records->result_array();
          $places['name'] = $site['name'];
          foreach($places as $place){

           $root_array[$site['name']][] = $place;
          }

         }
     return $root_array;

here is my php that loops through:

<?php foreach($places as $site): ?>
    <h5><?=key($site)?></h5>
        <?php foreach($site as $place): ?>
            <h6><?=$place['place_name']?></h6>
        <?php endforeach?>

<?php endforeach ?>

Also when I run a test which just spits out the array this is the result, What I am trying to render is [Philadelphia]

[Philadelphia] => Array
        (
            [0] => Array
                (
                    [place_name] => XYX
                    [place_id] => 103200
                    [place_status] => 0
                )

            [1] => Array
                (
                [place_name] => YYYY
                [place_id] => 232323
                [place_status] => 0
            )
+7  A: 

You can access your array keys like so:

foreach ($array as $key => $value)
Pekka
This method only returns 'array'
matthewb
What, if you echo $key? Nah. Not if you run it on the array that `Philadelphia` is a key of. Can you show some code?
Pekka
This works, my mysql statement had a minor issue also but I got it working with your solution, thank you.
matthewb
A: 

As Pekka stated above

foreach ($array as $key => $value)

Also you might want to try a recursive function

displayRecursiveResults($site);

function displayRecursiveResults($arrayObject) {
    foreach($arrayObject as $key=>$data) {
        if(is_array($data)) {
            displayRecursiveResults($data);
        } elseif(is_object($data)) {
            displayRecursiveResults($data);
        } else {
            echo "Key: ".$key." Data: ".$data."<br />";
        }
    }
}
Phill Pafford