我有一个多维数组,其结构未知且项目数量未知。我需要得到一个" 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()
函数,但说实话,我从来没有真正得到过这个函数。
你能解开我的头吗?提前谢谢!
答案 0 :(得分:1)
这可能就是你所需要的:
$output = call_user_func_array('array_replace', $input);
它调用array_replace()
,其中$input
的每个元素作为单独的函数参数传入。