使用键数组索引数组在PHP中使用速记

时间:2013-09-04 19:52:39

标签: php arrays functional-programming indexing

我常常发现自己有一些其他数组的键,并希望得到相应的值。例如,如果我想选择一个随机子阵列,函数array_rand($array)将返回一个随机索引数组,我想得到这些值。除此之外还有很多例子,但是一般问题(通常来自函数式编程风格)是我有一个键数组,需要相应值的数组。这是一个做到这一点的罗嗦方式,但我想知道是否有一些更短的方法来完成这个频繁的任务?

方式1:

$array_of_values = array();
foreach($array_of_indices as $index)
    $array_of_values[] = $array_of_data[$index];

方式2:

function index_array($index) { return $array_of_data[$index]; }
$array_of_values = array_map("index_array", $array_of_indices);

方式3:

$array_of_values = array_intersect_key($array_of_data,
                   array_fill_keys($array_of_indices, ''));

我希望有一些单一功能可以做到这一点,但在阅读完文档后我找不到一个。有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:1)

没有任何功能可以自行完成,但有一种方法比方式3

稍微简单一些
array_intersect_key($array_of_data, array_flip($array_of_keys));