由于for / foreach循环而不显示页面

时间:2011-10-24 01:14:54

标签: php for-loop

我知道我的代码有问题,因为页面永远不会加载所以for循环或foreach循环都有一些错误。 topRankings变量设置正确并给出正确的值。

<?php 
        for ($i = 0; $i >= count($topRankings); $i++){
            foreach($topRankings[$i] as $k=>$v)
            {
                $seperator = ($elements == $count) ? '' : '<hr />'; 
                $name = (!isset($row['character_name'])) ? 'TBD' : $row['character_name'];
                $count++;
            ?>
                <li><span class="red"><?php echo $name; ?></span></li>
            <?php
            }
        }
        ?>

$ topRankings的print_r

 Array ( [0] =&gt; Array ( [character_name] =&gt; Kid Wonder ) [1] =&gt; Array ( [character_name] =&gt; Ryu Satoshi ) [2] =&gt; Array ( [character_name] =&gt; Oriel ) [3] =&gt; Array ( [character_name] =&gt; \"The Ladies Man\" Luscious Landon ) [4] =&gt; Array ( [character_name] =&gt; \"The Outlaw\" Mike Mayhem ) )

修改 我得到一个未定义的计数变量和未定义的变量元素和未定义的偏移量:5。

<?php 
        $count = count($topRankings);
        for ($i = 0; $i <= $count; $i++) {
            foreach($topRankings[$i] as $k=>$v)
            {
                $seperator = ($elements == $count) ? '' : '<hr />'; 
                $name = (!isset($row['character_name'])) ? 'TBD' : $row['character_name'];
                $count++;
            ?>
                <li><span class="red"><?php echo $name; ?></span></li>
            <?php
            }
        }
        ?>

3 个答案:

答案 0 :(得分:7)

此:

for ($i = 0; $i >= count($topRankings); $i++){

应该是:

for ($i = 0; $i <= count($topRankings); $i++){

答案 1 :(得分:2)

此:

for ($i = 0; $i >= count($topRankings); $i++) {

应该是:

$count = count($topRankings);
for ($i = 0; $i <= $count; $i++) {

答案 2 :(得分:1)

未定义计数发生是因为$ count是5,并且因为你使用&lt; =你从0迭代到5,这是6项......最后一次'round抛出错误。

换句话说

$count = 5
$count != count(range(0,5));
$count == count(range(0,4));

顺便说一句,我也想知道你为什么现在需要这个foreach ......

<?php 
$topRankings =  array(
    0 => array('character_name' => 'Kid Wonder'),
    1 => array('character_name' => 'Ryu Satoshi' ),
    2 => array('character_name' => 'Oriel' ),
    3 => array('character_name' => '"The Ladies Man" Luscious Landon' ),
    4 => array('character_name' => '"The Outlaw" Mike Mayhem')
);

$count = count($topRankings);
for ($i = 0; $i < $count; $i++) {
    $name = (!isset($topRankings[$i]['character_name'])) ? 'TBD' : $topRankings[$i]['character_name'];
    echo '<li><span class="red">' . $name . '</span></li>';
    if ($i < $count-1) echo '<hr>';
}