0

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

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

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

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

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

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

4

4 回答 4

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';
   }
}
于 2012-09-17T15:34:29.470 回答
0

你是什​​么意思“它不工作”?你得到什么错误?您是否尝试过该var_dump命令来查看 $data[$i] 是否包含任何内容?

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

于 2012-09-17T15:26:29.120 回答
0

我可能会这样做

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

看看你得到了什么。

于 2012-09-17T15:37:26.537 回答
0

你可以这样做吗?

function show_data($data)
{
    if (is_array($data))
    {
        foreach($data as $key=>$value)
        {
            //do something
            show_data($value);
        }
    } else {
                // do something
        echo $data;
    }
}
于 2012-09-17T15:53:40.580 回答