这是我的数据:
$dataItems = [
[
'id' => 1,
'serial' => "XXXXXXAA1",
'pd_item_info' =>
[
'id' => 1,
'quantity' => 5,
'ipo_item_pml_info' =>
[
'id' => 1,
'product_name' => 'Keyboard'
]
]
],
[
'id' => 2,
'serial' => "XXXXXXAA2",
'pd_item_info' =>
[
'id' => 2,
'quantity' => 10,
'ipo_item_pml_info' =>
[
'id' => 2,
'product_name' => 'Keyboard'
]
]
]
];我需要这个输出:
$output = [
'product_name' => "Keyboard",
'serial' =>["XXXXXXAA1", "XXXXXXAA2"]
];在laravel中使用foreach和array_push,我如何合并重复的product_name并加入其中?
发布于 2018-10-23 05:08:13
我想pd_item_info和ipo_item_pml_info总是在那里
首先,根据产品名称对数组键进行分解,并将所有的串行密钥追加到相同的产品名称下。
foreach($dataItems as $item) {
$products[$item['pd_item_info']['ipo_item_pml_info']['product_name']][] = $item['serial'];
}
//output
// [
// 'Keyboard' => ['XXXXXXAA1', 'XXXXXXAA2'];
// ]接下来,根据需要进行格式化。
foreach($products as $key => $product) {
$output[] = [
'product_name' => $key,
'serial' => $product
];
}就这样..。=D
https://stackoverflow.com/questions/52940976
复制相似问题