<?php
$in = [
['id' => 1, 'currency' => 'EUR', 'name' => 'NL'],
['id' => 2, 'currency' => 'EUR', 'name' => 'DE'],
['id' => 3, 'currency' => 'EUR', 'name' => 'FR'],
['id' => 4, 'currency' => 'EUR', 'name' => 'BE'],
['id' => 5, 'currency' => 'USD', 'name' => 'US'],
['id' => 6, 'currency' => 'Rand', 'name' => 'SAF'],
['id' => 7, 'currency' => 'Rubbles', 'name' => 'RUS'],
['id' => 8, 'currency' => 'EUR', 'name' => 'IT'],
['id' => 9, 'currency' => 'Pound', 'name' => 'GB'],
];
$query = ['currency' => 'EUR', 'id' => 8]; //search needles
$out = array_filter($in, function(array $candidate) use ($query) {
foreach ($query as $key => $predicate) {
if (isset($candidate[$key]) && $candidate[$key] !== $predicate) {
return false;
}
}
return true;
});
print_r($out);
- Output for 7.1.25 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- Array
(
[7] => Array
(
[id] => 8
[currency] => EUR
[name] => IT
)
)
preferences:
155.54 ms | 403 KiB | 162 Q