Released: ArrayLookup 2.1.0
Feature
Add new Finder::partition() functionality:
It splits data into 2 arrays: matching and non-matching, instead of 2 loops to get match and non-match, it just use single iteration, and already get both matching and non-matching data.
The valid example for this:
<?php
// Import CSV data and separate valid/invalid rows in one pass
$csvRows = $csvParser->parse('users.csv');
[$validUsers, $invalidUsers] = Finder::partition(
$csvRows,
fn($row) => $validator->validate($row)->isValid()
);
// Bulk insert valid users
$userRepository->bulkInsert($validUsers);
// Generate error report for invalid rows
$reportGenerator->createErrorReport($invalidUsers);Full Changelog: 2.0.3...2.1.0