PHP code example of alison4kk / items

1. Go to this page and download the library: Download alison4kk/items library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

alison4kk / items example snippets




tems\Items;
use Items\ItemBag;

$users = [
    ['id' => 1, 'name' => 'Alice', 'city' => 'São Paulo', 'age' => 28, 'active' => true],
    ['id' => 2, 'name' => 'Bob', 'city' => 'Rio', 'age' => 35, 'active' => false],
    ['id' => 3, 'name' => 'Charlie', 'city' => 'São Paulo', 'age' => 42, 'active' => true],
];

// Static API - immutable
$active = Items::filtered($users, ['active' => true]);

// Static API - in-place
Items::filter($users, ['city' => 'São Paulo']);

// Fluent API - in-place chaining
$result = (new ItemBag($users))
    ->filter(['active' => true])
    ->sort('age', 'asc')
    ->map(fn($u) => ['name' => $u['name'], 'age' => $u['age']])
    ->all();

Items::filtered(array $items, ...$conditions): array

Items::filter(array &$items, ...$conditions): void

$collection->filter(...$conditions): ItemBag

Items::sorted(array $items, string $field, string $direction = 'ASC'): array
Items::sorted(array $items, callable $comparator): array

Items::sort(array &$items, string $field, string $direction = 'ASC'): void
Items::sort(array &$items, callable $comparator): void

$collection->sort(string $field, string $direction = 'ASC'): ItemBag
$collection->sort(callable $comparator): ItemBag

Items::mapped(array $items, callable $mapper): array

Items::map(array &$items, callable $mapper): void

$collection->map(callable $mapper): ItemBag

Items::uniqued(array $items, string|callable $key): array

Items::unique(array &$items, string|callable $key): void

$collection->unique(string|callable $key): ItemBag

Items::indexed(array $items, string|callable $key): array

Items::index(array &$items, string|callable $key): void

$collection->index(string|callable $key): ItemBag

Items::grouped(array $items, string|callable $key, ?string $subKey = null): array

Items::group(array &$items, string|callable $key, ?string $subKey = null): void

$collection->group(string|callable $key, ?string $subKey = null): ItemBag

Items::column(array $items, string|callable $key): array

$collection->column(string|callable $key): array

Items::first(array $items, $condition = null): mixed
Items::last(array $items, $condition = null): mixed
$collection->first($condition = null): mixed
$collection->last($condition = null): mixed

Items::every(array $items, callable|array $condition): bool
Items::some(array $items, callable|array $condition): bool
Items::contains(array $items, array $search): bool
$collection->every(callable|array $condition): bool
$collection->some(callable|array $condition): bool
$collection->contains(array $search): bool

Items::count(array $items, $condition = null): int
Items::sum(array $items, string $field): float|int
Items::average(array $items, string $field): float|int
Items::max(array $items, string $field): float|int
Items::min(array $items, string $field): float|int
$collection->count($condition = null): int
$collection->sum(string $field): float|int
$collection->average(string $field): float|int
$collection->max(string $field): float|int
$collection->min(string $field): float|int

Items::countBy(array $items, string $field): array
Items::sumBy(array $items, string $groupField, string $sumField): array
$collection->countBy(string $field): array
$collection->sumBy(string $groupField, string $sumField): array

Items::keyValue(array $items, string $keyField, string $valueField): array
Items::mapKeys(array $items, callable $mapper): array
$collection->keyValue(string $keyField, string $valueField): array
$collection->mapKeys(callable $mapper): array

Items::getPath($item, string $path, $default = null): mixed
Items::setPath(&$item, string $path, $value): void

$collection->get(string $path, $default = null): mixed
$collection->set(string $path, $value): ItemBag
$collection->with(string $path, $value): ItemBag

Items::getPath($user, 'profile.address.city');
$collection->set('0.user.settings.theme', 'dark');

['field' => 'value']                           // equality
['active' => true, 'city' => 'São Paulo']     // AND logic

['field', 'value']                             // equality
['field', '>=', 10]                            // comparison
['field', 'IN', ['A', 'B']]                    // membership
['field', 'CONTAINS', 'substring']             // contains
fn (array $item): bool => $item['id'] > 10    // callable