在php中列出多维数组中的值

时间:2011-06-07 04:22:46

标签: php arrays multidimensional-array

我一直在研究这个问题。我看到php中的多维数组并不那么容易。 这是我的代码:

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

这适用于显示主阵列的键。我得到的是:

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

我想要的是访客和价值(访客人数),行动价值等。 我想在Mysql中保存值。有些我将不得不从字符串转换为int或date。

我需要再深入列出一个级别。但我看不出怎么做。 - - - - - - - 添加 - - - - - - 所以我拥有的是一个数组数组。我需要逐步完成每个数组。

3 个答案:

答案 0 :(得分:4)

你试过print_r吗?

如果你需要更多的格式控制,那么@Nick建议的嵌入式循环是最好的选择。虽然使用foreach循环而不是使用它会更自然,更安全。

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

请参阅PHP manual: each,有一个“警告”框架。

编辑1 我将上面的示例代码更新为2天数组。

您的数组似乎超过2维。那你应该使用递归。

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";
  }
}

答案 1 :(得分:1)

尝试像这段代码的循环:

$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";
}

输出

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

答案 2 :(得分:0)

最好的方法是var_dump($ arr);

<?php

var_dump($_SERVER);

?>

包含类型,字符串长度的输出,并将迭代对象。

由于你想迭代一个数组,试试foreach:

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