PHP/Laravel Foreach循环-仅显示属于同一标题的项目

PHP/Laravel Foreach循环-仅显示属于同一标题的项目,php,arrays,laravel,Php,Arrays,Laravel,我有一个问题,以我想要的方式查看一些数据 以下是该阵列的一个示例: $items = 0 => [ 'name' => 'foo' 'description' => 'bar' 'url' => 'http://foobar.com' 'headline' => 'Headline 1' ]

我有一个问题,以我想要的方式查看一些数据

以下是该阵列的一个示例:

$items =         
       0 => [
               'name' => 'foo'
               'description' => 'bar'
               'url' => 'http://foobar.com'
               'headline' => 'Headline 1' 
            ],
       1 => [
               'name' => 'uni'
               'description' => 'corn'
               'url' => 'http://unicorn.com'
               'headline' => 'Headline 1' 
            ],

       2 => [
               'name' => 'awe'
               'description' => 'some'
               'url' => 'http://awesome.com'
               'headline' => 'Headline 2' 
            ],
我想循环遍历items数组,首先显示标题以及所有具有相同标题的项目。如果一个项目有另一个标题,我想打印出另一个标题和属于它的项目

应该是这样的:

Headline 1 : <--- Items that do have this headline

name = foo
description = bar
url = http://foobar.com

name = uni
description = corn
url = http://unicorn.com

Headline 2 <----- items with a new headline

name = awe
description = some
url = http://awesome.com

Headline 1:如果您的数组在转换为数组之前是一个集合,则可以使用集合方法:

$collection->groupBy('headline');

如果在转换为数组之前数组是集合,则可以使用集合方法:

$collection->groupBy('headline');

将laravel集合与groupby()方法一起使用

数组将按标题拆分


从Laravel文档中使用带有groupby()方法的Laravel集合

数组将按标题拆分


从Laravel文档中,这可能会有所帮助。我正在用核心PHP编写这段代码

$arr = array();
foreach($items as $item) {
  $arr[$item['headline']] = $item;
}
它将返回一个数组,如下所示

Array
(
    [Headline 1] => Array
        (
            [name] => uni
            [description] => corn
            [url] => http://unicorn.com
            [headline] => Headline 1
        )

    [Headline 2] => Array
        (
            [name] => awe
            [description] => some
            [url] => http://awesome.com
            [headline] => Headline 2
        )

)

也许这会有帮助。我正在用核心PHP编写这段代码

$arr = array();
foreach($items as $item) {
  $arr[$item['headline']] = $item;
}
它将返回一个数组,如下所示

Array
(
    [Headline 1] => Array
        (
            [name] => uni
            [description] => corn
            [url] => http://unicorn.com
            [headline] => Headline 1
        )

    [Headline 2] => Array
        (
            [name] => awe
            [description] => some
            [url] => http://awesome.com
            [headline] => Headline 2
        )

)

你应该在后端做所有这些事情你应该在后端做所有这些事情我会尝试,一秒:)我会尝试,一秒:)我会尝试,我会很快回复:)@WellNo我刚刚尝试在一个具有你的结构的集合上使用它,它工作得很好。我在数组上调用了一个成员函数groupBy()。所以它不是一个收藏。你有办法在数组上这样做吗?@WellNo如果你是从DB获取这些数据,请使用Elounce,不要将其转换为数组。如果没有,请使用
collect($array)
方法从数组创建一个集合。我会尝试,我很快会回复:)@WellNo我刚刚尝试在具有您的结构的集合上使用它,效果很好。我在数组上调用了一个成员函数groupBy()。所以它不是一个收藏。你有办法在数组上这样做吗?@WellNo如果你是从DB获取这些数据,请使用Elounce,不要将其转换为数组。如果没有,请使用
collect($array)
方法从数组创建集合。