Skip to content
Advertisement

List values in multi-dimensional array in php

I have been working on this a while. I see multi-dimensional arrays in php are not that easy. Here is my code:

      while (list($key,$value) = each ($x))
        {
        Print "$key  => $valuen<br>n";
        }

This works well to display the keys of the main array. what I get is :

visitors => Array 
actions => Array 
actions-average => Array 
time-average => Array 
pages-entrance => Array

What I want is the visitors and the value (number of visitors), value of actions, etc. I want to then save the value in Mysql. Some I will have to convert from a string to and int or date.

I need to list one more level deep. But I cannot see how to do this. ————–Added ———– So what I have is an array of arrays. I need to step through each array.

Advertisement

Answer

did you try print_r ?

if you need more control over formatting then embedded loops as suggested by @Nick is the best option. Although it would be more natural and safer to use foreach loops rather than while.

foreach($x as $key => $value){
  foreach( $value as $key2 => $value2){
    print "$key $key2 => $value2n<br />n";
  }
}

see PHP manual: each , there is a “caution” frame.

EDIT 1 I update sample code above for 2 day array.

It seems your array has more than 2 dimension. Then you should use recursion.

function my_print_r($x,$header="")
{
  foreach($x as $key => $value){
    if(is_array($value))
      my_print_r($value,$header . $key .  " " );
    else
      print "$header $key2 => $value2n<br />n";
  }
}
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement