在PHP中迭代多维数组以输出内部数组中的内容
尽管尝试了几天,我还是无法在数组($SortedResult)中输出存储在数组($innerresult)中的“标题”。我需要能够访问$innerresult中的所有元素,以便在视图的侧菜单中显示它们(侧菜单只是属于一个类别的所有标题,例如:PHP)。欢迎对我下面的代码提出任何想法/修改在PHP中迭代多维数组以输出内部数组中的内容,php,arrays,codeigniter,multidimensional-array,Php,Arrays,Codeigniter,Multidimensional Array,尽管尝试了几天,我还是无法在数组($SortedResult)中输出存储在数组($innerresult)中的“标题”。我需要能够访问$innerresult中的所有元素,以便在视图的侧菜单中显示它们(侧菜单只是属于一个类别的所有标题,例如:PHP)。欢迎对我下面的代码提出任何想法/修改 $this->db->select('*'); $this->db->from('crd_article_desc'); $this->db->where('article_
$this->db->select('*');
$this->db->from('crd_article_desc');
$this->db->where('article_id', $CurrentTitleId);
$query = $this->db->get();
$result=$query->result_array(); //return fetched data
foreach($result as $value){
$this->db->select('article_title');
$this->db->from('crd_article_desc');
$this->db->where('article_category', $value['article_category']);
$innerquery = $this->db->get();
$innerresult=$innerquery->result_array();
$SortedResult[$value['article_category']][] = array($innerresult,$value['article_desc']);
}
return ($query->num_rows() > 0)?$SortedResult:FALSE;
}
下面是我如何尝试访问视图中的阵列
if(isset($res)){
foreach($res as $ArticleCategory=>$title)
{
?>
<h2 class="left"><span class="left_h2"><?php echo $ArticleCategory; ?> </h2>
<?php
foreach($title as $articletitle) {
$new_friendly_url = friendly_seo_string($articletitle['0']);
?>
<a target="_top" href="<?php echo base_url();?>
<?php
echo $new_friendly_url;
?>
">
<?php
echo $articletitle['0'];
?>
</a>
<?php
}
}
}
您似乎在该数组中创建了一些不必要的级别,但这应该列出标题
foreach ( $SortedResult['PHP'][0][0] as $article )
echo $article['article_title'];
}
这应该列出类别名称和标题
foreach ( $SortedResult as $catName => $inner ){
foreach( $inner[0][0] as $article){
echo $catName . ' - ' . $article['article_title'] . '<br>';
}
}
执行
print\r($SortedResult)
然后您可以看到如何执行。如果不给我们看输出,有人会帮你汉克斯·里格斯。我现在把它打印成了数组([PHP]=>Array([0]=>Array([0]=>Array([article\u title]=>Variables)[1]=>Array([article\u title]=>Array)[2]=>Array([article\u title]=>operators)[3]=>Array([article\u title]=>loops)[4]=>Array([article\u title]=>recursive])[1]=>这是第1003条)))以后请编辑您的问题,没有人可以阅读评论中的代码。道歉。事情发生得很匆忙。嗨,里格斯,非常感谢!它按预期输出文章标题!我也需要打印的关键,这是一个类别的名称下列出的所有标题。在您的答案中,我不需要使用“PHP”作为键,而是需要使用存储类别的实际变量,例如PHP,这意味着它是动态处理的。如果我错了,请纠正我。这是一件非常有趣的事情。此外,你能告诉我一种方法,以尽量减少我的数组中的级别,但能够保持在数组中的类别名称和标题。我将非常感谢您。请查看答案,以获得对您的评论的答复,这是一个非常好的解决方案。经过几天的思考,这个问题在你的帮助下得到了解决,里格斯!谢谢。我非常喜欢多维数组。你能给我指一下多维数组上最好的在线学习资源吗,最好是PHP。当然可以。谢谢你的帮助。嗨,里格斯,我在数组中循环时遇到了一个错误,如上所述。请查看它,找出我在访问元素时出错的地方。非常感谢。
foreach ( $SortedResult as $catName => $inner ){
foreach( $inner[0][0] as $article){
echo $catName . ' - ' . $article['article_title'] . '<br>';
}
}
PHP - Variables
PHP - arrays
PHP - operators
PHP - loops