Неопределенное количество происходит потому, что $ 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>';
}