通过php中的数组循环

时间:2016-02-13 10:45:59

标签: php arrays for-loop

<?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

我正在尝试获取数组并将它们排列在表中,但它正在给出错误。

请解决这个问题。提前谢谢......

1 个答案:

答案 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>";
    }
}