开发者

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  => $value\n<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开发者_StackOverflow中文版 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.


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 => $value2\n<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 => $value2\n<br />\n";
  }
}


Try loops like this code:

$arrA=array("a", "b", "c");
$arrB=array("x", "y", "z");
$x=array("visitors" => $arrA, "actions" => $arrB);
foreach($x as $key => $value)
{
   foreach($value as $v)   
      echo "$key  => $v<br>\n";
}

OUTPUT

visitors  => a<br> 
visitors  => b<br> 
visitors  => c<br> 
actions  => x<br> 
actions  => y<br> 
actions  => z<br


the best way is var_dump($arr);

<?php

var_dump($_SERVER);

?>

with output that includes types, string length, and will iterate over objects as well.

Since you want to iterate over an array, give foreach a try:

foreach ($arr as $el)
{
    // ... Work with each element (most useful for non associative arrays, or linear arrays)
}

// or

foreach ($arr as $key => $value)
{
    // ... Work with $key and $value pairs (most useful for hashes/associative arrays)
} 


/ / . . . here, we take variable $company for nested array and in this variable we put 2 employee id and its called multi-dimensional array and we take $company variable to assign the associative array with keys so we print the output with keys

$company=[

$emp=[1,"neha","employee",12000,30000],

$emp1=[2,"moni","manager",12000],

];

$company=["first" => $emp,"second" => $emp1];

foreach($company as $key => $value) {

echo "$key ";

foreach($value as $v1){
     
    echo "$v1";
}

}

output :-

employee ID name designation salary bonus

first 1 neha employee 12000 30000

second 2 moni manager 12000

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜