2016-02-13 138 views
-3
<?php 
for($i=0; $i<sizeof($top_name); $i++) 
{ 
    for($i=0; $i<sizeof($top_name); $i++) 
    { 
    echo "<tr><td>".$sub_name[$i]."</td><td>".$sub_diff[$i]."</td></tr>"; 
    echo "<tr><td>".$top_name[$i]."</td><td>".$top_diff[$i]."</td> <td>".$top_size[$i]."</td></tr>"; 
    } 
} 

?> 

錯誤:通過陣列中的PHP循環

說明:用C 2::未定義偏移\ XAMPP \ htdocs中\ TRY上線\ data.php 28
注意:未定義偏移:2 C:\ xampp \ htdocs \ TRY \ data.php在線28

我試圖獲取數組並將它們安排在表中,但它給出了該錯誤。

請解決這個問題。在此先感謝...

+0

$ top_name是你的數組名?? – Nikunj

+1

你有一個雙'for'循環和相同的遞增變量('$ i'):這對你的代碼沒有意義。我認爲你只能使用一個循環。但是你想達到什麼? – fusion3k

+0

或者也許你必須用'$ i fusion3k

回答

2

假設你有$top_name這些元素和$sub_name陣列:

$top_name = array('First Name', 'Second Name', 'Third Name', 'Fourth Name'); 
$sub_name = array('Sub One', 'Sub Two'); 

你的兩個循環的作用過程是這樣:

1) main loop > $i = 0 > executed 
2)  2nd loop > $i = 0 > executed 
3)  2nd loop > $i = 1 > executed 
4)  2nd loop > $i = 2 > executed > undefined offset for $sub_name 
5)  2nd loop > $i = 3 > executed > undefined offset for $sub_name 
6) main loop > $i = 4 > not executed 

因此,執行更深層次的循環也用於不存在的$sub_name元素,而主循環只執行一次。

在第二循環中,你必須改變遞增變量名和條件變量:

for($i=0; $i<sizeof($top_name); $i++) 
{ 
    for($n=0; $n<sizeof($sub_name); $n++) 
    { 
     echo "<tr><td>".$sub_name[$n]."</td><td>".$sub_diff[$n]."</td></tr>"; 
     echo "<tr><td>".$top_name[$i]."</td><td>".$top_diff[$i]."</td> <td>".$top_size[$i]."</td></tr>"; 
    } 
}