减少我有这样阵列与关联数组
$filter_array = Array
(
[0] => Array
(
[fv_id] => 1
[fv_value] => Red
[filter_id] => 1
[filter_name] => Color
)
[1] => Array
(
[fv_id] => 2
[fv_value] => Blue
[filter_id] => 1
[filter_name] => Color
)
)
我想通过具有上阵列的顶部FILTER_NAME和过滤器_id这对于所有阵列类似,以减少阵列的阵列。
$newArray = array_reduce($filter_array,function($carry,$item){
$allFilterValues[] = array(
'fv_id' => $item['fv_id'],
'fv_value' => $item['fv_value'],
);
$formated_array = array(
'filter_id' => $item['filter_id'],
'filter_name' => $item['filter_name'],
'filter_values' => $allFilterValues
);
return $formated_array;
});
但我刚开最后一个数组迭代值上filter_values
Array
(
[filter_id] => 1
[filter_name] => Color
[filter_values] => Array
(
[0] => Array
(
[fv_id] => 2
[fv_value] => Blue
)
)
)
但我想数组是这样的。
Array
(
[filter_id] => 1
[filter_name] => Color
[filter_values] => Array
(
[0] => Array
(
[fv_id] => 1
[fv_value] => Red
),
[1] => Array
(
[fv_id] => 2
[fv_value] => Blue
)
)
)
如果你正在合并'filter_id',为什么你放弃它作为数组键?你确定你有关键的名字吗?在我看来,你应该在每个子组之前使用'filter_id'和'filter_name'作为键。 – mickmackusa
在'array_reduce'回调的每次迭代中,您应该返回'$ carry' –