2012-09-17 114 views
0

我正在填充多维数组,我不知道进入它什么,但我试图访问数据。基本上这就是我所拥有的。通过多维数组循环通过了解关联字段

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

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

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

但它不工作,这就是为什么我在这里问。

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

+0

你能告诉我们一个数组的例子吗? – jprofitt

+0

是$东西一个数组? – Surace

+0

东西是一个数组,因为它传递'is_array'检查。主要的问题是我甚至无法得到一个阵列的例子,这是对我的破坏。我从基础数据库中获取信息并尝试在PHP中使用它。做一些进一步的检查我得到超时失败,所以它可能不是PHP代码。这主要是为什么我问我的问题。知道这应该工作,我可以回到其他人看看他们是否能解决它的一面。 – defaultNINJA

回答

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'; 
    } 
} 
+0

这看起来不错!我刚开始考虑沿着这个嵌套的每一行。 – defaultNINJA

0

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

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

+0

那么,PHP代码corret然后为多维数组?我正在与非php代码和挖掘数据进行交互,所以我没有直接连接到我正在访问的数据。我只需要确认我的php是正确的,然后再说出进来的$东西是错误的。我是PHP的新手,所以如果我得到的是正确的,我不想过早地跳过枪。我主要是Java和C++程序员。我所知道的关于$的东西是假设它是一个像$ array ['name'] = ninja这样的关联数组,存储到我的$ data []中。我会尝试使用is_array来确认。 – defaultNINJA

0

我probaby做得一样

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

,看看你会得到什么。

+0

@Surace写的东西可能比我的好一点,因为错误检查。 – TecBrat

+0

是的。这希望能够告诉我deminsion的位置以及我会给出的关键和价值。谢谢!我现在在尝试Suraces。 – defaultNINJA

0

你能这样做吗?

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