thomhurks / laravel-collection-extensions
Laravel 集合类的扩展。特别是groupByMultiple,它可以在多个字段上对集合进行分组,而不仅仅是单个字段。
v1.0.1
2017-03-21 17:20 UTC
Requires
- php: >=5.6.29
- illuminate/support: ^5.4
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is not auto-updated.
Last update: 2024-09-28 20:40:51 UTC
README
Laravel 集合类的扩展。特别是groupByMultiple,它可以在多个字段上对集合进行分组,而不仅仅是单个字段。
示例
通过调用 myCollection->groupBy(['A', 'B', 'C', 'D']),结果将变为
- foo
- bar
- baz
- thud [foo, bar, baz, thud]
- corge
- thud [foo, bar, corge, thud]
- waldo [foo, bar, corge, waldo]
- baz
- garply
- corge
- plugh [foo, garply, corge, plugh]
- corge
- bar
- qux
- garply
- xyzzy
- fred [quz, garply, xyzzy, fred]
- xyzzy
- grault
- garply
- quuz [qux, grault, garply, quuz]
- garply
- garply
跨兼容性 groupByMultiple 函数在某种程度上与 Laravel 原始的 groupBy 兼容,即如果您将非数组传递为第一个参数,则它将按相同的方式工作。所以就像 groupBy 一样,您可以用字符串或闭包调用它。函数只是将第一个参数放入数组中,如果它不是一个数组。如果您尝试将可调用项作为数组传递,例如 ["Foo", "Bar"](其中 Foo::Bar() 是一个有效的方法),那么当然 groupByMultiple 函数将尝试首先按 "Foo" 键进行分组,然后是 "Bar";这是与 groupBy() 的主要不兼容之处。当然,您可以将包含可调用项的数组传递,例如 [["Foo", "Bar"]] 或 [["Foo", "Bar"], "Baz"] 将正常工作。对于已经使用 groupBy 的人来说,这个函数将很容易切换。