Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach循环没有所有数据_Php_Codeigniter - Fatal编程技术网

Php Foreach循环没有所有数据

Php Foreach循环没有所有数据,php,codeigniter,Php,Codeigniter,所以我在alliesArray上印了一张照片,结果我想到了这个。现在的问题是,我在试图弄清楚我的foreach应该是什么样子时遇到了一个问题,因为在这个数组中不会一直都有值。但我希望它能做的是,如果有任何没有值的,那么甚至不要将其包含在数组中,这样它只能回显索引。有什么建议吗 函数getCharacterAlliances($character\u id) { $testArray=array(); $this->db->select('ally1_id,ally2_id,ally3_id,al

所以我在alliesArray上印了一张照片,结果我想到了这个。现在的问题是,我在试图弄清楚我的foreach应该是什么样子时遇到了一个问题,因为在这个数组中不会一直都有值。但我希望它能做的是,如果有任何没有值的,那么甚至不要将其包含在数组中,这样它只能回显索引。有什么建议吗

函数getCharacterAlliances($character\u id) { $testArray=array(); $this->db->select('ally1_id,ally2_id,ally3_id,ally4_id,ally5_id'); $this->db->from('characters\u bio\u allians'); $this->db->where('characters\u id',$character\u id); $query=$this->db->get(); 如果($query->num\u rows()>0) { $row=$query->row(); $ids=数组( $row->ally1_id, $row->ally2\u id, $row->ally3\u id, $row->ally4\u id, $row->ally5\u id ); foreach($id作为$id) { 如果($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\u name; } 其他的 { $testArray[]=“”; } } } 其他的 { 对于($x=0;$x<5;$x++) { $testArray[]=“”; } } 返回$testArray; } foreach($alliesArray作为$row) { 回显“
  • ”$row['character_name']。“
  • ”; } 试试这个:

    foreach ($alliesArray as $key => $row) {
      if (!empty($alliesArray[$key])) {
        echo '<li>' . $row['character_name'] . '</li>';
      }
    }
    
    foreach($alliesArray作为$key=>$row){
    如果(!empty($alliesArray[$key])){
    回显“
  • ”.$row['character_name']。
  • ”; } }
    做一个
    if(count($alliesArray)>0)
    然后把你的foreach放在这个if中?而且你不应该在循环中有一个查询,我能让它显示出来,但是,它只显示第一个实际的计算机字符,如“R”或“/”或“O”
    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>";
    }
    
    foreach ($alliesArray as $key => $row) {
      if (!empty($alliesArray[$key])) {
        echo '<li>' . $row['character_name'] . '</li>';
      }
    }