не отображается страница из-за циклов for / foreach - PullRequest
0 голосов
/ 24 октября 2011

Я знаю, что с моим кодом что-то не так, потому что страница никогда не загружается, поэтому что-то не так с циклом 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
            }
        }
        ?>

Print_r из $ topRankings

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

РЕДАКТИРОВАТЬ: Я получаю неопределенную переменную countи неопределенные переменные элементы и неопределенное смещение: 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 ]

7 голосов
/ 24 октября 2011

Это:

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

Должно быть:

for ($i = 0; $i <= count($topRankings); $i++){
2 голосов
/ 24 октября 2011

Это:

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

Должно быть:

$count = count($topRankings);
for ($i = 0; $i <= $count; $i++) {
1 голос
/ 24 октября 2011

Неопределенное количество происходит потому, что $ count равно 5, а поскольку вы используете <=, вы перебираете от 0 до 5, то есть 6 элементов ... последний раз, когда раунд выдает ошибку. </p>

Другими словами

$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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...