通过多维数组循环而不知道关联字段

时间:2012-09-17 15:22:53

标签: php multidimensional-array foreach

我正在填充一个多维数组,我不知道它是什么,但我正在尝试访问数据。基本上这就是我所拥有的。

while (some condition) {
     $data[] = $stuff;
}

然后我试图像这样访问它。

for ($i = 0; $i < count($data); $i++) {
     foreach ($data[$i] as $key => $value) {
          echo $key . " => " . $value;
     }
}

但它不起作用,这就是我在这里问的原因。

我也尝试将$data[$i]存储到临时数组并循环它,但它也失败了。

4 个答案:

答案 0 :(得分:1)

foreach ($data AS $datum) {
   if(is_array($datum)){
      foreach ($datum as $key => $value) {
           echo $key . " => " . $value;
      }
   }else{
       echo 'Sorry mate your $stuff is fcked up';
   }
}

答案 1 :(得分:0)

你是什么意思&#34;它不起作用&#34;?你得到了什么错误?您是否尝试过var_dump命令来查看$ data [$ i]是否包含任何内容?

基本上如果你不知道什么是$ stuff ...你需要做更多的错误和类型检查。例如,如果$ data [$ i]不是一个数组,那么foreach循环可能会失败。考虑使用is_array方法。

答案 2 :(得分:0)

我可能会这样做

foreach ($data as $dkey=>$stuffs) 
  {
    foreach ($stuffs as $skey => $value) 
      {
        echo $dkey.' '.$skey . " => " . $value;      
      }
  } 

看看你得到了什么。

答案 3 :(得分:0)

你能这样做吗?

function show_data($data)
{
    if (is_array($data))
    {
        foreach($data as $key=>$value)
        {
            //do something
            show_data($value);
        }
    } else {
                // do something
        echo $data;
    }
}