1

我的数组有 12 个带有标题、描述和类别名称的新闻项目

我只有 4 个类别(每个 3 个项目)并且需要创建类别菜单,但如果我从项目数组中获取它们,我有 12 个类别名称(每个 3x)作为结果。如果已经打印,我如何才能只回显一次类别名称?

$myarray 打印:

   [0] => Array
        (
            [title] => Item 1
            [desc] => Sed venenatis bibendum nisl, eget iaculi
            [cat_title] => Category 1
        )

    [1] => Array
        (
            [title] => Item 1
            [desc] => Sed venenatis bibendum nisl, eget iaculi
            [cat_title] => Category 2
        )
    [2] => Array
        (
            [title] => Item 2
            [desc] => Sed venenatis bibendum nisl, eget iaculi
            [cat_title] => Category 2
        )...

环形:

   foreach( $myarray as $key=>$item){

       echo $item['category_name'];
    }

注意:我不知道会有多少个类别,它可以是一个或多个。目前有 4 个。任何帮助表示赞赏。谢谢!

4

2 回答 2

6

将数组类别映射到一个简单数组,然后删除所有重复值。

$categories = array_unique(array_map(function($val) {
    return $val['cat_title'];
}, $myarray));

foreach($categories as $cat) {
    echo $cat;
}
于 2013-09-19T13:17:25.910 回答
1

您可以创建临时数组:

$temp = array();
foreach( $myarray as $key=>$item){
 if(!in_array($item['category_name'], $temp)){
       echo $item['category_name'];
       $temp[] = $item['category_name'];
 }
}
于 2013-09-19T13:16:01.163 回答