2010-07-09 62 views
4

我越來越:未定義的偏移誤差,但是偏移不是未定義

Notice: Undefined offset: 0 
在我的代碼

,不過,我可以的print_r我試圖得到其明確定義的元素。

function get_members($entries_found) { 
    $members = $entries_found[0]['member']; 
    ... 
} 

如果我print_r($ members)得到預期的輸出,但是我仍然收到通知。

任何線索?

+2

執行行號匹配的通知。它可能在你的代碼中的其他地方。 'print_r'輸出可能會有所幫助。 – 2010-07-09 02:22:36

+0

嘗試var_dumping它以確保0是一個int而不是'0' – 2010-07-09 02:22:53

+0

行號與錯誤消息匹配。肯定是$ members = ...這一行引發了這個錯誤。我已經發表評論來證實這一點。 print_r輸出我期待的數組。由於它包含敏感信息,因此我無法將其粘貼到此處。 0肯定是一個int而不是'0'。 – khendar 2010-07-09 03:35:11

回答

0

var_dump($entries_found); 

要檢查陣列確實有一個爲0偏移。其他的事情你可以嘗試將正在重置數組指針

reset($entries_found); 
檢查

如果它被設置第一

if (isset($entries_found[0]['member'])) // do things 

如果一切都失敗了,你可以只剿與

$members = @$entries_found[0]['member']; 
0

我的通知真的不知道$entries_found在訪問get_members時發生了什麼

但我有同樣的問題。 print_rvar_dump給我看,該指標存在,但是當我試圖訪問它,我得到了offset error

在我來說,我解碼的JSON字符串json_decode而不設置assoc標誌。

// Not working 
$assocArray = json_decode('{"207":"sdf","210":"sdf"}'); 
echo $assocArray[207]; 


// working witht the assoc flag set 
$assocArray = json_decode('{"207":"sdf","210":"sdf"}', true); 
echo $assocArray[207]; 

得到了我的解決辦法從這裏:Undefined offset while accessing array element which exists