Skip to content

DataFilter API

Complete API reference for DataFilter.

Create a new instance.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John']];
$filter = DataFilter::make($data);

Keep only specified keys.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$result = $filter->only(['name', 'age'])->get();

Remove specified keys.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$result = $filter->except(['id'])->get();

Filter by key-value.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$filter->where('status', 'active');

Filter by key in values.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$filter->whereIn('role', ['admin', 'moderator']);

Filter where key is not null.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$filter->whereNotNull('email');

Transform each item.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$result = $filter->map(fn($item) => ['name' => strtoupper($item['name']), 'age' => $item['age']])->get();

Filter items by callback.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25, 'active' => true], ['id' => 2, 'name' => 'Jane', 'age' => 30, 'active' => false]];
$filter = DataFilter::query($data);
$result = $filter->filter(fn($item) => $item['active'])->get();

Get filtered array.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$result = $filter->toArray();

Get first item.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$first = $filter->first();

Count items.

use event4u\DataHelpers\DataFilter;
$data = [['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30]];
$filter = DataFilter::query($data);
$count = $filter->count();