emrul1875 / laravel-extra-collection
Laravel 额外集合包
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0
README
这是一个 Laravel Collection 包,可以与 Laravel 现有集合一起使用。欢迎您在仓库中提出新想法或贡献力量。让我们使生活变得更加简单。
安装
您可以通过 composer 安装此包
composer require emrul1875/laravel-extra-collection
使用方法
包将自动发现!
将服务提供者添加到 config/app.php
Emrul1875\LaravelExtraCollection\LaravelExtraCollectionServiceProvider::class
集合
prependValue
prependValue()
方法接受 3 个参数。前两个参数是必填的,第三个参数是可选的。第一个参数接收一个数组或字符串。如果您的集合是顺序数组,则可以将字符串作为第一个参数传递,否则传递一个数组。该数组应包含键和值对,其中键将是集合中应更改的属性名称,值是需要添加到值中的文本。您可以在第三个参数中传递 true 或 false。默认为 false。如果您传递 true,它将跳过所有值为 null 的属性。
<?php $collection = collect([ [ 'name' => 'John', 'balance' => 100, 'image' => '/uploads/image54543534.png' ], [ 'name' => 'Jonny', 'balance' => 200 'image' => '/uploads/image54543534.png' ] ]); $updatedCollection = $collection->prependValue(["balance" => "USD ", "image": "https://dummyurl.com"], true); /* [ 'name' => 'John', 'balance' => "USD 100", 'image' => 'https://dummyurl.com/uploads/image54543534.png' ], [ 'name' => 'Jonny', 'balance' => "USD 200", 'image' => 'https://dummyurl.com/uploads/image54543534.png' ] */
appendValue
appendValue()
方法接受 3 个参数。前两个参数是必填的,第三个参数是可选的。第一个参数接收一个数组或字符串。如果您的集合是顺序数组,则可以将字符串作为第一个参数传递,否则传递一个数组。该数组应包含键和值对,其中键将是集合中应更改的属性名称,值是需要追加到值中的文本值。您可以在第三个参数中传递 true 或 false。默认为 false。如果您传递 true,它将跳过所有值为 null 的属性。
<?php $collection = collect([ [ 'name' => 'John', 'currency' => 'FCFA', 'balance' => 100, ], [ 'name' => 'Jonny', 'currency' => 'FCFA', 'balance' => 400 ] ]); $updatedCollection = $collection->appendValue(["balance" => " FCFA"]); /* [ 'name' => 'John', 'currency' => 'FCFA', 'balance' => '100 FCFA', ], [ 'name' => 'Jonny', 'currency' => 'FCFA', 'balance' => '400 FCFA' ] */
concatValue
concatValue()
方法接受 3 个参数。前两个参数是必填的,第三个参数是可选的。第一个参数接收要添加到集合中的新属性名称。第二个参数接收集合中存在的字段名称数组。第三个参数接收分隔符(逗号 ,
或空格 ' '
)。
<?php $collection = collect([ [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe' ], [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe' ] ]); $updatedCollection = $collection->concatValue("fullname", ["title", "firstname", "lastname"], " "); /* [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe', 'fullname' => 'Mr. John Doe' ], [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe', 'fullname' => 'Mr. Johny Doe' ] */
at
at()
方法接受一个整数值,并返回该索引处的项,允许使用正整数和负整数。负整数从数组的最后一个项开始计数。
<?php $collection = collect([ 6,5,7,5,2,5,7,3,3 ]); $updatedCollection = $collection->at(3) /* 5 */ $collection = collect([ [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe' ], [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe' ] ]); $updatedCollection = $collection->at(1) /* [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe' ] */
find
find()
方法返回满足提供测试函数的第一个元素在提供数组中的值。如果没有值满足测试函数,则返回 null
。
<?php $collection = collect([ 6,5,7,5,2,5,7,3,3 ]); $updatedCollection = $collection->find(function($item) { return $item > 5; }); /* 6 */ $collection = collect([ [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 20 ], [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe', 'age' => 25 ] ]); $updatedCollection = $collection->find(function($item) { return $item->age > 15; }) /* [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 20 ], */
findIndex
findIndex()
方法返回满足提供测试函数的第一个元素在数组中的索引。否则,它返回 -1,表示没有元素通过测试。
<?php $collection = collect([ 6,5,7,5,2,5,7,3,3 ]); $updatedCollection = $collection->findIndex(function($item) { return $item > 5; }); /* 0 */ $collection = collect([ [ 'title' => 'Mr.' 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 20 ], [ 'title' => 'Mr.' 'firstname' => 'Johny', 'lastname' => 'Doe', 'age' => 25 ] ]); $updatedCollection = $collection->findIndex(function($item) { return $item->age > 20; }) /* 1 */