2013-07-04 53 views
-3

我遇到了問題,請幫助我。在PHP中數組中未定義的錯誤錯誤

這是我的數組

Array 
(
    [0] => subject7 
    [1] => subject6 
    [2] => subject5 
    [3] => subject3 
    [4] => subject2 
) 

和我的數組大小爲5

$sub= array(); 
     for($j=0; $j<=$size; $j++) 
     { 
     $sub[] = $subject_value[$subject[$j]]; 

     } 

,但它給我一個錯誤信息未定義抵消:5

+2

有沒有[5]元素數組中 – matino

+1

你必須提供更多的信息:什麼是'$ size',什麼是兩個數組你使用...基本上,錯誤是說你正在嘗試訪問'$ subject [5]',但最高的鍵是4.可能用'$ j <$ size'代替'$ j <= $ size'將解決它 –

回答

2

for($j=0; $j<$size; $j++) 
3

的錯誤發生,因爲你沒有在array.So第5元素來改變像下面

$sub= array(); 
     for($j=0; $j<$size; $j++) 
     { 
     $sub[] = $subject_value[$subject[$j]]; 

     } 

代碼在這種情況下

$j <= $size 

將迭代循環6次,因此它看起來對於第6個元素,它是$ size [5],因爲鍵從0開始,並且數組中沒有第6個或$ size [5]元素。所以你會得到這個錯誤。所以你需要迭代循環5次因爲你的數組大小是5.所以你必須在for循環中把條件改成$ j < $ size。

1

您正在使用<=運算符,它還檢查索引編號5並使該索引的條件爲真。即使僅存在指數法直到4.

for($j=0; $j<$size; $j++) 

改變它<根據上面的代碼操作者存在從0僅索引4,然後它使5數組元素。

2

變化

$j<=$size 

$j<$size 
1

爲了避免這種常見的錯誤,你可以使用foreach循環:

foreach($subject as $item){ 
    //work here 
} 

這樣你就永遠不要試圖訪問一個非 - 存在的元素(在你的情況下$ subject [5])。

2
$sub= array(); 
for($j=0; $j<=$size; $j++) 
{ 
    $sub[] = $subject_value[$subject[$j]]; 
} 

應該

$sub= array(); 
for($j=0; $j<$size; $j++) 
{ 
    $sub[] = $subject_value[$subject[$j]]; 
}