Циклы Foreach, не имеющие всех данных - PullRequest
0 голосов
/ 21 ноября 2011

Итак, я запустил print_r на моем alliesArray и в результате придумал это.Теперь проблема в том, что у меня возникла проблема с попыткой выяснить, как должен выглядеть мой foreach, потому что внутри этого массива не будет значений постоянно.Хотя я бы хотел, чтобы это было, если есть такие, которые не имеют значений, даже не включайте их в массив таким образом, чтобы они могли только отражать индексы.Какие-либо предложения?

Array
(
    [0] => Ryu Satoshi
    [1] => Oriel
    [2] => \"The Ladies Man\" Luscious Landon
    [3] => 
    [4] => 
)
function getCharacterAllies($character_id) 
{
    $testArray = array();
    $this->db->select('ally1_id, ally2_id, ally3_id, ally4_id, ally5_id'); 
    $this->db->from('characters_bio_allies');
    $this->db->where('characters_id', $character_id); 
    $query = $this->db->get();  
    if ($query->num_rows() > 0) 
    {
        $row = $query->row(); 
        $ids = array(
        $row->ally1_id,
        $row->ally2_id,
        $row->ally3_id,
        $row->ally4_id,
        $row->ally5_id
        );

        foreach ($ids as $id) 
        {
            if($id !== '0') 
            {
                $this->db->select('character_name');
                $this->db->from('characters');
                $this->db->where('id', $id); 
                $query = $this->db->get();  
                $row = $query->row(); 
                $testArray[] = $row->character_name;
            } 
            else 
            {
                $testArray[] = "";
            }
        }
    } 
    else 
    {
        for ($x = 0; $x < 5; $x++) 
        {
            $testArray[] = "";
        }
    }
    return $testArray;
}

foreach ($alliesArray as $row)
{
    echo "<li>".$row['character_name']."</li>";
}

1 Ответ

1 голос
/ 21 ноября 2011

Попробуйте это:

foreach ($alliesArray as $key => $row) {
  if (!empty($alliesArray[$key])) {
    echo '<li>' . $row['character_name'] . '</li>';
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...