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