如何在PHP中获取数组值的子集?

时间:2017-08-28 02:28:32

标签: php arrays

假设:

$info = ['abc'=>'xyz', '123'=>'456', 'vowels'=>'aeiou'];  //complete data array
$keys = ['abc','123'];  //list of keys I'm interested in getting the VALUES for

获得像这样的数组的最佳方法是什么(没有KEYS):

['xyz','456']

目前,我有这个,但感觉PHP的内置数组函数可能还有其他一些方法:

$result = [];

foreach ($keys as $key) {
    $result[] = $info[$key];
}

return $result;

其他答案描述了一个'pluck'类型函数,但那些都返回了键...我只想要这些值。

更新:答案似乎是以下两个回复的组合:

array_values(array_intersect_key($info,array_flip($keys)));

1 个答案:

答案 0 :(得分:1)

你的方法没什么特别糟糕的,但这里有几个选择

$out= array_map(function($x) use ($info) { return $info[$x]; }, $keys);

print_r($out);
  

阵列(       [abc] => XYZ       [123] => 456)

OR

npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
  

阵列(       [0] =&gt; XYZ       [1] =&gt; 456)