我一直在使用codeigniter多年,但有一个非常大的差距,所以我总是发现自己在的情况下,我忘记了如何做的事情,它几乎午夜在这里,所以我的大脑是不是工作得很快。谁能告诉我如何回显我的数组,并解释它们是如何在foreach循环中处理的?
我的模型中有这样的代码来获取两个表中的行。
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]=> Array([0]=> Array([tag_id]=> 1 [tag_name]=> LitRPG)[1]=> Array([tag_id]=> 2 [tag_name]=>虚拟现实)[2]=>数组([tag_id]=> 3 [tag_name]=>赛博朋克)[3]=>数组([tag_id]=> 4 [tag_name]=>轮回)[4]=>数组([tag_id]=> 5 [tag_name]=>召唤英雄)[5]=>数组([tag_id]=> 6 [tag_name]=>武术)[6]=>数组([tag_id]=> 7 [tag_name]=> Slice of Life)[7]=> Array([tag_id]=> 8 [tag_name]=> Overpowered)[8]=> Array([tag_id]=> 9 [tag_name]=> Non-Human)[9]=> Array([tag_id]=> 10 [tag_name]=> Anti-hero))[genre]=> Array([0]=> Array([genre_id]=> 1 [genre_name]=> action)[1]=> Array([genre_id]=> 2 [genre_name]=> adventure)[2]=> Array([genre_id]=> 3 [genre_name]=>喜剧)[3]=>数组([genre_id]=> 4 [genre_name]=> Drama)[4]=> Array([genre_id]=> 5 [genre_name]=>奇幻)[5]=>数组([genre_id]=> 6 [genre_name]=> Historical)[6]=> Array([genre_id]=> 7 [genre_name]=>恐怖片)[7]=>数组([genre_id]=> 8 [genre_name]=>心理学)[8]=>数组([genre_id]=> 9 [genre_name]=> Romance)[9]=> Array([genre_id]=> 10 [genre_name]=>科幻)[10]=>数组([genre_id]=> 11 [genre_name]=> Mystery)[11]=> Array([genre_id]=> 12 [genre_name]=>悲剧)[12]=>数组([genre_id]=> 13 [genre_name]=>短篇故事)[13]=>数组([genre_id]=> 14 [genre_name]=>讽刺))
我一直在研究关于数组的各种问题,从assoc到多维和其他东西。然后我终于访问了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>
我现在的问题是,我怎么把这些都放进我的table里?我刚刚毁了我的表,现在,因为我呼应他们都在一行。我如何做到这一点,使它被打印在3列?
2条答案
按热度按时间wgx48brx1#
这将以一种你可以阅读和理解的方式格式化你的数组。
xesrikrc2#
API中的foreach循环