2012-09-17 143 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; 
    } 
}