Laravel 集合中 groupBy用法

这篇具有很好参考价值的文章主要介绍了Laravel 集合中 groupBy用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

居然一直忽略了 groupBy() 这么好用的东西文章来源地址https://www.toymoban.com/news/detail-515966.html

groupBy()

groupBy 方法根据指定键对集合项进行分组:

$collection = collect([
    ['account_id' => 'account-x10', 'product' => 'Chair'],
    ['account_id' => 'account-x10', 'product' => 'Bookcase'],
    ['account_id' => 'account-x11', 'product' => 'Desk'],
]);

$grouped = $collection->groupBy('account_id');

$grouped->toArray();

/*
    [
        'account-x10' => [
            ['account_id' => 'account-x10', 'product' => 'Chair'],
            ['account_id' => 'account-x10', 'product' => 'Bookcase'],
        ],
        'account-x11' => [
            ['account_id' => 'account-x11', 'product' => 'Desk'],
        ],
    ]
*/

你可以传递一个回调函数用来代替一个字符串的 键。这个回调函数应该返回你希望用来分组的键的值:

$grouped = $collection->groupBy(function ($item, $key) {
    return substr($item['account_id'], -3);
});

$grouped->toArray();

/*
    [
        'x10' => [
            ['account_id' => 'account-x10', 'product' => 'Chair'],
            ['account_id' => 'account-x10', 'product' => 'Bookcase'],
        ],
        'x11' => [
            ['account_id' => 'account-x11', 'product' => 'Desk'],
        ],
    ]
*/

可以传递一个数组用于多重分组标准。每一个数组元素将对应多维数组内的相应级别:

$data = new Collection([
    10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
    20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
    30 => ['user' => 3, 'skill' => 2, 'roles' => ['Role_1']],
    40 => ['user' => 4, 'skill' => 2, 'roles' => ['Role_2']],
]);

$result = $data->groupBy([
    'skill',
    function ($item) {
        return $item['roles'];
    },
], $preserveKeys = true);

/*
[
    1 => [
        'Role_1' => [
            10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
            20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
        ],
        'Role_2' => [
            20 => ['user' => 2, 'skill' => 1, 'roles' => ['Role_1', 'Role_2']],
        ],
        'Role_3' => [
            10 => ['user' => 1, 'skill' => 1, 'roles' => ['Role_1', 'Role_3']],
        ],
    ],
    2 => [
        'Role_1' => [
            30 => ['user' => 3, 'skill' => 2, 'roles' => ['Role_1']],
        ],
        'Role_2' => [
            40 => ['user' => 4, 'skill' => 2, 'roles' => ['Role_2']],
        ],
    ],
];
*/

到了这里,关于Laravel 集合中 groupBy用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP的Laravel的数据库迁移

    在终端输入以下代码 php artisan migrate 我的报错啦!!!!! 数据库里面只有两张表,实际上应该有四张的!!! 反正表已经迁移完成了,就把迁移完成的表的内容注释掉,接着执行php artisan migrate,得到下一个表的内容。 然后依次类推直至所有表都创建完成!!! 当然啦!

    2024年02月04日
    浏览(59)
  • PHP Laravel 路由、中间件、数据库等例子

    以下是使用Laravel框架时的一些常见示例: 1. 路由(Routes): // 定义基本路由 Route::get(\\\'/home\\\', \\\'HomeController@index\\\'); // 带有参数的路由 Route::get(\\\'/user/{id}\\\', \\\'UserController@show\\\'); // 路由组 Route::middleware([\\\'auth\\\'])-group(function () {     Route::get(\\\'/dashboard\\\', \\\'DashboardController@index\\\');     Route::pos

    2024年02月16日
    浏览(59)
  • 医疗安全不良事件管理系统源码(PHP+ vue+laravel)

    医疗安全不良事件管理系统全套源码 不良事件上报系统源码 不良事件 管理系统 帮助医院梳理建立不良事件上报与管理的一体化解决方案,包含上报内容、归口科室、上报流程及管理办法。提供面向医院的不良事件全过程管理平台,包含事件上报、事件处理、事件追踪、RC

    2024年02月06日
    浏览(63)
  • 学习路之PHP--laravel postman 提交表单出现419错误

    问题图片 解决: 白名单 有时候你可能希望设置一组不需要 CSRF 保护的 URL 。例如,如果你正在使用 Stripe 处理付款并使用了他们的 webhook 系统,你会需要从 CSRF 的保护中排除 Stripe webhook 处理程序路由,因为 Stripe 不知道要发送什么样的 CSRF 令牌到你的路由。 通常,你应该把

    2024年01月19日
    浏览(62)
  • larvel 中的api.php_Laravel 开发 API

    Laravel10中提示了Target *classController does not exist,为什么呢? 原因是:laravel8开始写法变了。换成了新的写法了 解决方法一: 在路由数组加入 AppHttpControllers 即可。 再次访问URL,搞定。 解决方法二: 打开 appProvidersRouteServiceProvider.php 修改,添加一个namespace变量

    2024年02月06日
    浏览(74)
  • docker容器下php框架laravel的使用问题与解决方案

    DB_CONNECTION=mysql DB_HOST=localhost DB_CONNECTION=mysql DB_HOST=docker33-mysql-1 容器中只有数据库结构 进入MySQL容器内,创建表结构,添加数据 代码层面需要转换成数组 $query - get ( [\\\'*\\\'] )- toArray () ; 分页数据框架会返回带有data的数据,如果循环记得加上

    2024年01月23日
    浏览(73)
  • 甘特图控件DHTMLX Gantt教程:dhtmlxGantt 与PHP: Laravel(下)

    DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术(PHP,ASP.NET,Java等)简单集成,满足多种定制开发需求

    2024年02月06日
    浏览(80)
  • 【PHP面试题42】Laravel依赖注入实现的原理是怎么样的

    本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题, 对标资深工程师/架构师序列 ,欢迎大家提前关注锁定。 Laravel是一个流行的PHP开发框架,它提供了许多方便和强大的功能来简化开发过程。其中一个关键功能是依赖注入(Dependency Injecti

    2024年02月16日
    浏览(43)
  • DNMP一键部署PHP8.2和Laravel10的Docker环境

    服务器环境 所有命令皆在root用户下运行 VMware虚拟机下的ubuntu22.04 docker24.0.7 docker-compose 2.6.1 yeszao/dnmp开源仓库 仓库地址: https://gitee.com/yeszao/dnmp 本文章只提供整个部署的过程,对docker、dockerFile以及docker-compse的知识最好有初步的认识,才能更好的理解 ① 首先在/www文件夹拉取

    2024年01月20日
    浏览(55)
  • php项目laravel框架下在yapi接口文档中运行生产环境的接口

    在 Laravel 中运行 YApi 项目需要经过以下步骤: 1. 安装 Node.js 和 YApi 首先需要在服务器上安装 Node.js 和 YApi,可以按照官方文档进行安装。如果您已经安装了 Node.js,可以使用以下命令安装 YApi: 2. 创建 YApi 项目 在 Laravel 项目的根目录下创建一个新的目录,用于存放 YApi 项目。

    2024年01月25日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包