在 Laravel 中将数组转换为集合

2024-01-12

我在 PHP 中有以下数组:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]

现在我想将其转换为集合,因此我按键排序website or url。但是当我这样做时:

$myArray = collect(websites);

我得到这个:

 {
      "0": {
         "website": "example",
         "url": "example.com"
      },
      "1": {
         "website": "example",
         "url": "example.com"
      }
    }

并且排序不起作用,我想知道我做错了什么以及如何修复它,以便我有一个可以轻松排序的对象数组集合。

Edit:我希望输出与此相同:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]

我所说的“排序不起作用”是指这些项目没有排序。


编辑;我知道这个问题根据标题得到了很多点击,所以这些人的 TLDR 是使用collect()帮助器创建 Collection 实例。回答提问者的简介:

如果你有

$collection = collect([
    (object) [
        'website' => 'twitter',
        'url' => 'twitter.com'
    ],
    (object) [
        'website' => 'google',
        'url' => 'google.com'
    ]
]);

然后将数组包装在 Collection 类的实例中。 这意味着它的行为不像典型的数组(-它将是类似数组的,但不要将它视为一个数组-),直到您调用all() or toArray()在上面。要删除您需要使用的任何添加的索引values().

$sorted = $collection->sortBy('website');

$sorted->values()->all();

预期输出:

[
     {#769
       +"website": "google",
       +"url": "google.com",
     },
     {#762
       +"website": "twitter",
       +"url": "twitter.com",
     },
]

请参阅文档https://laravel.com/docs/5.1/collections#available-methods https://laravel.com/docs/5.1/collections#available-methods

The toArray方法将集合转换为普通的 PHP 数组。如果集合的值是 Eloquent 模型,则模型也会转换为数组。

The all方法返回由集合表示的基础数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Laravel 中将数组转换为集合 的相关文章

  • RuntimeException - 会话存储未根据请求设置 - Laravel Socialite - Facebook

    我在用着Laravel 5 7 and Laravel Socialite 3 1 我想使用登录Facebook我刚刚为此项目配置了应用程序 这些是我为此配置的主要文件 env FACEBOOK CLIENT ID FACEBOOK CLI
  • 如何在 Laravel 视图中找到当前语言?

    我正在使用 Laravel Lang 类来本地化我的网络应用程序 我已将两种语言添加到语言数组中application config application php 这会将用于本地化的默认语言更改为 URI 第一部分指示的任何内容 例如 b
  • Laravel 5 命名约定

    我对 Laravel 约定有点困惑 因为我是这个框架的新手 我正在关注 Jeffrey Way 他使用的 Laracasts 视频Plural对于控制器名称 E g 页面控制器 卡片控制器 帖子控制器 但如果我参考官方文档Laravel g
  • 如何在 Laravel 中正确返回 JSON 响应?

    return response gt json message gt No new orders 不幸的是 这个回应不起作用 理想情况下 我想返回一个 JSON 响应 其中包含 消息 gt 没有新订单 状态代码为 204 无内容 我在控制器
  • 使用 TreeMap 和 Comparator 按值对 HashMap 进行排序

    我使用以下代码创建哈希图 然后使用树形图和比较器对哈希图中的值进行排序 然而 输出结果却出乎意料 所以任何关于我做错了什么的想法都会有帮助 Code public static void main String args System ou
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • 我需要在服务器上安装 Composer 吗?

    我正在尝试部署 Laravel 应用程序 想知道 Composer 是否需要单独安装在服务器上 不 您可以在单独的服务器上构建应用程序 或者在团队中工作时在开发计算机上不太理想 然后将项目 包括已安装的供应商 复制到您的服务器上 事实上 在
  • Eloquent/Laravel 三路多对多关系

    我对 Laravel 和 Eloquent 是全新的 而且我对 ORM 的经验也很少 假设我有三个数据库表 Widgets Actions Users 我建模了一个连接表 其中包含以下列 widget id action id user i
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima
  • 将集合项复制到 .NET 中的另一个集合

    在 NET VB 中 如何获取一个集合中的所有项目 并将它们添加到第二个集合中 而不丢失第二个集合中预先存在的项目 我正在寻找比这更有效的东西 For Each item As Host In hostCollection1 hostCol
  • 找不到类“App\Http\Controllers\Auth\User”

    我该如何解决这个 Laravel 错误 Class App Http Controllers Auth User not found 我正在为博客创建一个寄存器 并且使用以下内容 User create name gt request gt
  • 如何比较两个碳时间戳?

    我有两个时间戳 edited at 我创建的 和created at Laravel 的 在数据库中 两者都有时间戳类型和默认值 0000 00 00 00 00 00 但是 var dump edited at variable 正在给出
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • Laravel Group By 和 Order By 不起作用

    我尝试制作一个Laravel 5 8项目 项目中的数据是这样的 id purch name prcvalue 1 10234 Nabila 100 2 10234 Nadeera 450 3 10234 Nabila 540 4 10234
  • Laravel - 覆盖模型 ID

    我正在开发电子书管理系统 我使用 UUID 而不是自动递增整数主键 它工作得很好 protected static function boot parent boot static creating function model model
  • Laravel Blade 比较两个日期

    我想比较 2 个日期 因此 我在模板刀片中创建了这样的条件 if Carbon Carbon parse contrat gt date facturation gt format d m Y lt dateNow td class dan
  • 如何将对象(模型类型对象)插入到 Laravel 中 Collection 对象的特定索引号处?

    我读过戴尔 里斯的代码明亮 https daylerees com codebright 了解更多关于雄辩的信息Collection在 Laravel 中使用 还做了一些其他研究 但找不到我正在寻找的答案 我想插入一个对象 Model输入对
  • 使用 Laravel Eloquent 获取所有最新记录

    我尝试以这种方式查询数据库 但它返回错误 未找到最新 DailyReport get gt latest gt paginate 10 我希望它返回所有带分页的每日报告 The latest 方法是缩写orderBy created at
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • 合并两个地图的最佳实践是什么

    如何将新地图添加到现有地图 地图具有相同的类型Map

随机推荐