3v4l.org

run code in 300+ PHP versions simultaneously
<?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