<?php
const FIND_BY_KEY = 1<<0;
const FIND_BY_VAL = 1<<1;
$arr = [
'plugin-folder/plugin-file.php' => 'one',
'plugin-folder/two' => 'two',
'muplugins/hey' => 'hey',
'vendor/laravel' => 'laravel'
];
function arrayFinder($lookup, $kv) {
return function($v, $k) use ($lookup, $kv) { return strpos((($kv === FIND_BY_KEY)?$k:$v), $lookup) === 0; };
}
$filtered = array_filter($arr, arrayFinder('plugin-folder', FIND_BY_KEY), ARRAY_FILTER_USE_BOTH);
var_dump($filtered);
$filtered = array_filter($arr, arrayFinder('one', FIND_BY_VAL), ARRAY_FILTER_USE_BOTH);
var_dump($filtered);
- Output for 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.25, 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.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
- array(2) {
["plugin-folder/plugin-file.php"]=>
string(3) "one"
["plugin-folder/two"]=>
string(3) "two"
}
array(1) {
["plugin-folder/plugin-file.php"]=>
string(3) "one"
}
preferences:
159.07 ms | 404 KiB | 217 Q