我一直在研究这个问题。我看到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。
我需要再深入列出一个级别。但我看不出怎么做。 - - - - - - - 添加 - - - - - - 所以我拥有的是一个数组数组。我需要逐步完成每个数组。
答案 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)
}