首页 > 解决方案 > 将数组转换为集合 laravel

问题描述

我有一个这样的请求数组,

[
      "item_asset_id" => [1, 2]
      "colour_id" => [10, 11]
      "qty" => [10, 20]
      "price" => [100, 300]
      "tax_price" => [0, 0]
      "notes" => ['Item one', item two]
]

如何将这样的数组转换为具有键值的集合我需要这样的结果

[
  ['item_asset_id' => 1, 'colour_id' => 10, 'qty' => 10],
  ['item_asset_id' => 2, 'colour_id' => 11, 'qty' => 20],
]

顺便说一句,我正在使用 laravel 框架,在此先感谢

标签: laravel

解决方案


您应该将每个数组部分放入单独的数组中,然后将结果设置在结果数组中:

 $values =
            [
                "item_asset_id" => [1, 2],
                "colour_id" => [10, 11],
                "qty" => [10, 20],
                "price" => [100, 300],
                "tax_price" => [0, 0],
                "notes" => ['Item one', 'item two'],
            ];

        $resultArray=[];

        for ($i=0;$i<2;$i++)
        {
            $tempArray=[];
            $tempArray["item_asset_id"]=$values["item_asset_id"][$i];
            $tempArray["colour_id"]=$values["colour_id"][$i];
            $tempArray["qty"]=$values["qty"][$i];
            $tempArray["price"]=$values["price"][$i];
            $tempArray["tax_price"]=$values["tax_price"][$i];
            $tempArray["notes"]=$values["notes"][$i];
            $resultArray[]=$tempArray;
        }

        dd($resultArray);

$resultArray会得到想要的结果。


推荐阅读