Array_replace_recursive为单个数组的值

时间:2014-06-20 13:56:17

标签: php arrays multidimensional-array each

我有一个多维数组,其结构未知且项目数量未知。我需要得到一个" flater"从特定键编译的数组,如下例所示:

输入

$input = array(

    1 => array(
         'color' => 'blue',
         'haircut' => 'mullet',
         'satisfaction' => 'mild',
         'recursion' => array(...)
    ),

    2 => array(
         'color' => 'green',
         'haircut' => 'mushroom',
         'fashionable' => true,
         'recursion' => array(...)
    ),

    3 => array(
         'color' => 'yellow',
         'haircut' => 'beehive',
         'awkward' => false,
         'recursion' => array(...)
    ),

    ...

);

输出(上面合并的数组)

$output = array(
    'color' => 'yellow',
    'haircut' => 'beehive',
    'satisfaction' => 'mild',
    'fashionable' => true,
    'awkward' => false,
    'recursion' => array(...)
);

我认为理想的方法是使用array_replace_recursive($input[0],$input[1],$input[2], ...),对吧?问题是我不知道$input数组中键的确切数量。

有没有简单的方法来实现这个目标?我的猜测是使用each()函数,但说实话,我从来没有真正得到过这个函数。

你能解开我的头吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这可能就是你所需要的:

$output = call_user_func_array('array_replace', $input);

它调用array_replace(),其中$input的每个元素作为单独的函数参数传入。