目前,我正在使用此函數擷取訓示從數組中收集存儲為另一個數組中的值的鍵數組的鍵/值:
function get_indicies($haystack,$needle_names = array()){
$needles = array();
foreach($needle_names as $needle_name){
if( isset($haystack[$needle_name]) ) $needles[$needle_name] = $haystack[$needle_name];
}
return $needles;
}
php中有大量的數組函數,有沒有一種方法可以在類範圍内更有效地執行此操作,并且可以使用更多内置的php函數?
解決方法:
$subset = array_intersect_key($haystack, array_flip($needleNames));
這通常在名稱pluck或類似輔助函數下使用.
function pluck(array $array, $keys) {
if (!is_array($keys)) {
$keys = func_get_args();
array_shift($keys);
}
return array_intersect_key($array, array_flip($keys));
}
var_dump(pluck($array, array('foo', 'bar', 'baz')));
var_dump(pluck($array, 'foo', 'bar', 'baz'));
标簽:php,arrays
來源: https://codeday.me/bug/20190625/1286805.html