tirrex/array-search

PHP библиотека для поиска в массивах по ключу-значению

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

pkg:composer/tirrex/array-search

dev-master 2025-12-14 12:29 UTC

This package is not auto-updated.

Last update: 2025-12-29 11:15:16 UTC


README

Библиотека для поиска в многомерных массивах по ключу-значению.

Установка

bash composer require vendor/array-search

Или вручную скопируйте файлы из src/ в ваш проект.

Простой поиск

require_once 'src/ArraySearch.php';

$users = [

['id' => 1, 'name' => 'Анна', 'age' => 25],
['id' => 2, 'name' => 'Иван', 'age' => 30]

];

// Поиск по одному ключу $user = searchInArray($users, 'name', 'Иван');

// Поиск по нескольким критериям $users = searchByCriteria($users, ['age' => 25]);

Расширенный поиск

require_once 'src/AdvancedArraySearch.php';

$products = [

['id' => 1, 'name' => 'Телефон', 'price' => 500],
['id' => 2, 'name' => 'Ноутбук', 'price' => 1000]

];

// С операторами сравнения $expensive = advancedArraySearch($products, [

'price' => ['>' => 600]

]);

Класс ArraySearcher

require_once 'src/ArraySearcher.php';

$searcher = new ArraySearcher($data);

$results = $searcher

->where(['category' => 'Электроника'])
->whereBetween('price', 100, 1000)
->orderBy('price', 'desc')
->limit(10)
->get();

Функции

searchInArray(array $array, string $key, $value): ?array Поиск первого элемента по ключу и значению.

searchByCriteria(array $array, array $criteria): array Поиск по массиву критериев.

advancedArraySearch(array $array, array $conditions): array Расширенный поиск с операторами сравнения.

Класс ArraySearcher

Методы:

where(array $conditions) - фильтрация по точному совпадению

whereBetween(string $key, $min, $max) - фильтрация по диапазону

whereIn(string $key, array $values) - фильтрация по списку значений

orderBy(string $key, string $direction) - сортировка

limit(int $limit) - ограничение количества результатов

get(): array - получение результатов

first(): ?array - получение первого элемента

count(): int - подсчет количества

Примеры

См. папку examples/ для подробных примеров использования.

Лицензия

MIT