PHP - 变量变量& array_merge() - 不工作

时间:2011-06-09 17:17:44

标签: php arrays variables variable-variables array-merge

我有一堆数组,存储在不同的变量中,如$ required,$ reserved等...

我想允许(在函数内部)传递一个选项数组(如$options = array('required', 'reserved')),然后该数组将用于定义哪些数组合并在一起并在结尾处返回功能

所以,我在函数的一部分中有这个代码,应该抓住所有选项并合并数组,使用变量变量从options数组中传递的字符串中获取数组):

$array = array();

foreach ($options as $key) {
  $array_to_merge = ${$key};
  array_merge($array, $array_to_merge);
}

return $array;

但是,当我返回$数组时,它显示0项。如果我print_r($array_to_merge);,我实际上会得到整个数组。

array_merge()根本不适用于变量变量,或者我在这里遗漏了什么......?

2 个答案:

答案 0 :(得分:4)

array_merge返回合并的数组,你没有将该返回值赋值给任何东西,因此它就会丢失。

$array = array_merge($array, $array_to_merge);

应该解决你的问题。

答案 1 :(得分:1)

如果我读得正确,你也可以简化你的代码(取代循环)到:

 $array = call_user_func_array("array_merge", compact($options));

compact替换变量查找并获取数组列表。实际上只需要一次array_merge调用。