Laravel 拉威尔阵列
这是我的数据:Laravel 拉威尔阵列,laravel,foreach,Laravel,Foreach,这是我的数据: $dataItems = [ [ 'id' => 1, 'serial' => "XXXXXXAA1", 'pd_item_info' => [ 'id' => 1, 'quantity' => 5, 'ipo_item_pml_info' => [
$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\u push
,我如何合并重复的product\u name
并加入序列?我假设pd\u item\u info
和ipo\u item\u pml\u 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