2011-03-08 137 views
0

索引4存在數組等級,但我得到錯誤...如果我撤消註釋$寫= 4然後它工作正常。數組返回錯誤未定義的索引php

foreach($writers[$i] as $write) 
     { 
     echo "writer: $write - rating: "; 
     print_r($rating); 
//$write=4; 
     echo "<br>". $rating[$write] ; 

} 

上面的代碼給

writer: 4 
Notice: Undefined index: 4 in D:\wamp\www\shazia\CRM\EffortTrackUpload\admin\cron.php on line 232 

陣列等級可以提供:

Array ([3] => 5.1 [4] => 6 [5] => 5.2 [6] => 5 [8] => 5 [9] => 5 [10] => 5 [11] => 4 [12] => 3.6 [13] => 5 [14] => 5.1) 

任何人都可以請幫我解釋一下我做錯了。

感謝

+0

'var_dump($ rating);'---如果php說沒有第4項 - 那麼就沒有。再次檢查。 – zerkms 2011-03-08 06:06:24

+0

這是什麼var_dump返回:它確實有索引4:array(11){[3] => string(3)「5.1」[4] => string(1)「6」[5] => string( 3)「5.2」[6] => string(1)「5」[8] => string(1)「5」[9] => string(1)「5」[10] => 「5」[11] => string(1)「4」[12] => string(3)「3.6」[13] => string(1)「5」[14] => string(3) 「} – shazia 2011-03-08 06:09:44

+0

只需檢查您是否取消對$ write的賦值並將其設置爲如下所示:$ write =」4「; 它仍然打印6嗎? – anubhava 2011-03-08 06:11:03

回答

2

根據您的意見,問題是$寫入字符串 - 「4」,但數組的索引僅僅是一個整數4.

工作了,爲什麼4在$作家則以用空間[$ i]數組,如果您從其他地方獲取數組,可以使用intval($ write)來獲取正確的值。

-1
foreach($writers as $write){ 
    //code here 
} 

是否應該怎麼寫:)

+0

不,不應該 – zerkms 2011-03-08 06:08:25

+0

$作者是一個多維數組 – shazia 2011-03-08 06:08:30

+0

OPs'foreach',我假設嵌套在另一個循環。 – 2011-03-08 06:08:56

1

要麼$writers[$i]是不確定的,當$i = 4,或$rating[$write]是不確定時$write = 4。它將是232行中對應於你的錯誤信息的那一個。

使用if(isset($writers[$i]))來防止錯誤。

編輯從你的評論,我會說這是$rating[4]這是未定義的。

0
foreach($writers[$i] as $write) 
     { 
     echo "writer: $write - rating: "; 
     print_r($rating); 
//$write=4; 
     echo "<br>". $rating[trim($write)] ; // use trim so that it will replace " 4" to "4" 

}