Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔阵列_Laravel_Foreach - Fatal编程技术网

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