emrul1875/laravel-extra-collection

v0.0.2 2021-10-30 06:58 UTC

This package is auto-updated.

Last update: 2024-09-29 06:03:09 UTC


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
*/

MIT