foreach循环中的回声数组codeigniter

时间:2017-12-02 15:49:27

标签: php arrays codeigniter foreach

我多年来一直在使用codeigniter,但两者之间存在很大的差距,所以我总是发现自己处于忘记如何做事的情况,而且几乎是午夜,所以我的大脑不能快速工作。有人可以告诉我如何回应我拥有的数组并向我解释它们如何在foreach循环中处理?

我在我的模型中有这个代码来获取2个表中的行。

public function tag_genre(){
$result['tag'] = $this->db->get('tags')->result_array();
$result['genre'] = $this->db->get('genre')->result_array();
return $result;
}

我在控制器中有这个

public function view_publish_story(){
$data = array('tag_genre' => $this->story_model->tag_genre(), 'title' => "New Story");

$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/storypublish',$data);
$this->load->view('template/footer');   
}

我在视图中使用了print_r,这就是结果。看到这个让我更加困惑。自从我处理foreach循环以来至少已经有2年了。

  

数组([tag] =>数组([0] =>数组([tag_id] => 1 [tag_name] =>   LitRPG)[1] =>数组([tag_id] => 2 [tag_name] =>虚拟现实)   [2] =>数组([tag_id] => 3 [tag_name] => Cyber​​punk)[3] =>阵列(   [tag_id] => 4 [tag_name] =>转世)[4] =>数组([tag_id] =>   5 [tag_name] =>召唤英雄)[5] =>数组([tag_id] => 6   [tag_name] =>武术)[6] =>数组([tag_id] => 7 [tag_name]   =>切片生活)[7] =>数组([tag_id] => 8 [tag_name] => Overpowered)[8] =>数组([tag_id] => 9 [tag_name] =>非人类)   [9] =>数组([tag_id] => 10 [tag_name] =>反英雄))[genre] =>   数组([0] =>数组([genre_id] => 1 [genre_name] =>动作)[1] =>   数组([genre_id] => 2 [genre_name] =>冒险)[2] =>阵列(   [genre_id] => 3 [genre_name] =>喜剧)[3] =>数组([genre_id] =>   4 [genre_name] =>戏剧)[4] =>数组([genre_id] => 5 [genre_name]   =>幻想)[5] =>数组([genre_id] => 6 [genre_name] =>历史)[6] =>数组([genre_id] => 7 [genre_name] =>恐怖)[7] =>排列   ([genre_id] => 8 [genre_name] =>心理学)[8] =>阵列(   [genre_id] => 9 [genre_name] =>浪漫)[9] =>数组([genre_id] =>   10 [genre_name] =>科幻)[10] =>数组([genre_id] => 11   [genre_name] =>神秘)[11] =>数组([genre_id] => 12   [genre_name] =>悲剧)[12] =>数组([genre_id] => 13   [genre_name] =>短篇小说)[13] =>数组([genre_id] => 14   [genre_name] =>讽刺)))

我一直在研究从关联到多维和其他东西的数组的各种问题。然后我终于访问了foreach循环的php手册,我终于能够回显阵列了。现在的问题是虽然它回应了我的数组,但每个数组也有错误,我可以通过将其声明为定义的变量来修复错误部分。我的问题是,还有其他更好的方法吗?或者我如何使我的阵列更清洁或更容易打印?

foreach($tag_genre as $key => $value){
    foreach($value as $values){
        echo $values['tag_name'];
    }
}

更新:我改变了制作阵列的方式。

这是我的模特:

public function get_tags(){
    $query = $this->db->get('tags')->result_array();

    foreach($query as $row){
    $result[$row['tag_id']] = $row['tag_name'];}
    return $result;
}

public function get_genre(){
    $query = $this->db->get('genre')->result_array();

    foreach($query as $row){
    $result[$row['genre_id']] = $row['genre_name'];}
    return $result;
}

和我的控制员:

public function view_publish_story(){
$data = array('tag' => $this->story_model->get_tags(), 'genre' => $this->story_model->get_genre(), 'title' => "New Story");

$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/storypublish',$data);
$this->load->view('template/footer');   
}

在我看来:

<tr>
<div class="form-group">
    <td><label for="genre">Genre</label></td>
    <?php  
    foreach($genre as $genre_id => $genre_name){
    echo "<td><label class='checkbox-inline'><input type='checkbox' value=''>".$genre_name."</label><td>";
    }
    ?>
</div>
</tr>

我现在的问题是,我如何将所有这些融入我的桌子?我刚刚毁了我的桌子,因为我在一条线上回应了他们。我该怎么做才能打印成3列?

1 个答案:

答案 0 :(得分:0)

foreach($tag_genre as $key => $value){
    foreach($value as $values){
        echo '<pre>';
        echo $values['tag_name'];
    }
}

这将以您可以阅读并理解它的方式格式化您的数组。