所以我有这个数组,vardump看起来像这样:
array (size=4)
0 =>
array (size=1)
'field_4' =>
array (size=1)
0 => string 'item-1' (length=6)
1 =>
array (size=1)
'field_4' =>
array (size=1)
0 => string 'info-1' (length=6)
2 =>
array (size=1)
'field_5' =>
array (size=1)
0 => string 'item-2' (length=6)
3 =>
array (size=1)
'field_5' =>
array (size=1)
0 => string 'info-2' (length=6)因此,我尝试将具有相同键的数组组合在一起,例如'field_4‘将合并/组合成一个包含两个项"item-1“和"info-1”的数组。
所以我想要的最终结果是:
array (size=2)
0 =>
array (size=1)
'field_4' =>
array (size=2)
0 => string 'item-1' (length=6)
1 => string 'info-1' (length=6)
1 =>
array (size=1)
'field_5' =>
array (size=1)
0 => string 'item-2' (length=6)
1 => string 'info-2' (lenght=6)那么,有没有一个PHP方便的函数来处理这个问题,或者我必须重新构建数组?
谢谢你的关注。
发布于 2013-04-14 08:05:45
只需迭代输入数组,构建合并的数组:
$merged = array();
foreach ($input as $a)
foreach ($a as $k => $v)
foreach ($v as $v2)
$merged[$k][] = $v2;然后将其展平为您奇怪的所需输出:
$flattened = array();
foreach ($merged as $k => $v)
$flattened[] = array($k => $v);输入:
$input = array(
array('field_4' => array('item-1')),
array('field_4' => array('info-1')),
array('field_5' => array('item-2')),
array('field_5' => array('info-2')),
);输出:
array(
array('field_4' => array('item-1', 'info-1')),
array('field_5' => array('item-2', 'info-2')),
)在转储输出时,print_r或var_export是比var_dump更具可读性的示例
https://stackoverflow.com/questions/15994246
复制相似问题