【问题标题】:Iterating through multidimensional array to output the contents in an inner array in PHP遍历多维数组以在PHP中的内部数组中输出内容
【发布时间】:2017-02-14 14:22:17
【问题描述】:

尽管尝试了几天,但我无法输出存储在数组 ($SortedResult) 内的数组 ($innerresult) 中的“标题”。我需要能够访问 $innerresult 中的所有元素,以便我可以在视图的侧面菜单中显示它们(侧面菜单只不过是属于某个类别的所有标题,例如:PHP)。欢迎对我的以下代码提出任何想法/修改。

$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 
    } 
} 
}

数组

Array ( 
    [PHP] => Array ( 
        [0] => Array ( 
            [0] => Array ( 
                [0] => Array ( 
                    [article_title] => Variables 
                    ) 
                [1] => Array ( 
                    [article_title] => arrays 
                    ) 
                [2] => Array ( 
                    [article_title] => operators 
                    ) 
                [3] => Array ( 
                    [article_title] => loops 
                    ) 
                [4] => Array ( 
                    [article_title] => recursive 
                    ) 
            ) [1] => This is article 1003 
        ) 
    ) 
)

【问题讨论】:

  • 做一个print_r($SortedResult)你可能会看到怎么做。如果不向我们显示输出,有人会帮助你
  • 谢谢里格斯。我现在确实打印出来了
  • 数组 ( [PHP] => 数组 ( [0] => 数组 ( [0] => 数组 ( [0] => 数组 ( [article_title] => 变量 ) [1] =>数组 ( [article_title] => 数组 ) [2] => 数组 ( [article_title] => 运算符 ) [3] => 数组 ( [article_title] => 循环 ) [4] => 数组 ( [article_title] => 递归) ) [1] => 这是第 1003 条 ) ) )
  • 以后请编辑您的问题,没有人可以阅读评论中的代码。
  • 道歉。事情发生得太匆忙了..

标签: php arrays codeigniter multidimensional-array


【解决方案1】:

您似乎在该数组中创建了一些不必要的关卡,但这应该列出标题

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>';
    }
}

结果:

PHP - Variables
PHP - arrays
PHP - operators
PHP - loops

【讨论】:

  • 嗨里格斯,非常感谢!它按预期输出文章标题!我还需要打印所有标题都列在下面的类别名称的键。我需要放置存储类别(例如 PHP)的实际变量,而不是使用“PHP”作为答案,这意味着它是动态处理的。如果我错了,请纠正我。这是一个非常有趣的探索。另外,您能否告诉我一种方法来最小化我的数组中的级别,同时又能够保留数组中的类别名称和标题。我会很感激你。
  • 查看答案以回复您的评论
  • 优秀的解决方案。经过几天的思考,在您的帮助里格斯解决了这个问题!非常感谢。我是多维数组的忠实粉丝。能否请您指出任何关于多维数组的最佳在线学习资源,最好是 PHP。
  • 当然可以。谢谢大家的帮助。
  • 嗨 Riggs,我在循环遍历上述数组时遇到了错误。请查看它以找出我在访问元素时出错的地方。谢谢。
猜你喜欢
  • 2016-08-17
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 2019-05-22
  • 1970-01-01
  • 2017-02-17
  • 1970-01-01
  • 2012-04-21
相关资源
最近更新 更多