我多年来一直在使用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] => Cyberpunk)[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列?
答案 0 :(得分:0)
foreach($tag_genre as $key => $value){
foreach($value as $values){
echo '<pre>';
echo $values['tag_name'];
}
}
这将以您可以阅读并理解它的方式格式化您的数组。