<?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>";
}
}
?>
错误:
注意:未定义的偏移量:在第28行的C:\ xampp \ htdocs \ TRY \ data.php中为2 注意:未定义的偏移量:第28行的C:\ xampp \ htdocs \ TRY \ data.php中的2
我正在尝试获取数组并将它们排列在表中,但它正在给出错误。
请解决这个问题。提前谢谢......
答案 0 :(得分: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>";
}
}