首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP组合多维数组

PHP组合多维数组
EN

Stack Overflow用户
提问于 2021-03-02 20:32:46
回答 1查看 33关注 0票数 0

我有以下数组。

代码语言:javascript
复制
"rent" => array:3 [
        0 => array:1 [
          0 => "5000"
        ]
        1 => array:3 [
          0 => "10000"
          1 => "60000"
          2 => "80000"
        ]
        2 => []
      ]
"house_quantity" => array:3 [
        0 => array:1 [
          0 => "2"
        ]
        1 => array:3 [
          0 => "3"
          1 => "4"
          2 => "6"
        ]
        2 => []
      ]
"property_id" => array:3 [
        0 => 1
        1 => 2
        2 => 3
      ]

"type_of_house" => array:3 [
        0 => array:1 [
          0 => array:1 [
            "type" => "studio_apartment"
          ]
        ]
        1 => array:3 [
          0 => array:1 [
            "type" => "studio_apartment"
          ]
          1 => array:1 [
            "type" => "one_bedroom"
          ]
          2 => array:1 [
            "type" => "two_bedroom"
          ]
        ]
        2 => array:2 [
          0 => array:1 [
            "type" => "studio_apartment"
          ]
          1 => array:1 [
            "type" => "two_bedroom"
          ]
        ]
      ]
    ]

我想组合上面的数组,这样它就形成了一个如下所示的数组。

代码语言:javascript
复制
"0" =>  [
        "property_id" => 1
        "type_of_house" => array:3 [
          "type"=> "studio_apartment"
          "rent" => "5000"
          "house_quantity" => "2"
        ]
      ]
"1" =>  [
        "property_id" => 2
        "type_of_house" => array:3 [
          "type"=> "studio_apartment"
          "rent" => "10000"
          "house_quantity" => "3"
        ]
        "type_of_house" => array:3 [
          "type"=> "one_bedroom"
          "rent" => "60000"
          "house_quantity" => "4"
        ]
       "type_of_house" => array:3 [
          "type"=> "two_bedroom"
          "rent" => "80000"
          "house_quantity" => "6"
        ]
      ]

到目前为止,我使用foreach循环循环遍历属性,并在每个属性中附加房屋类型,如下所示:

代码语言:javascript
复制
  foreach ($request->property_id as $key=> $property_id) {
            $result[$key] = array(
                'property_id' => $property_id,
                'type_of_house' => $request->type_of_house[$key]
            );
            foreach ($result as $property_key => $property) {
                foreach ($property['type_of_house'] as $house_key => $house) {
                    $house[$key][$house_key] = array(
                            'rent' => $request->rent[$key][$house_key],
                            'house_quantity' => $request->house_quantity[$key][$house_key]
                        );
                }
            }
        $merge = array_merge_recursive($result, $house);
        dd($merge);
        }

但是我得到的数组并不完全正确。这是我要返回的数组。

代码语言:javascript
复制
array:3 [
  0 => array:2 [
    "property_id" => 1
    "type_of_house" => array:1 [
      0 => array:1 [
        "type" => "studio_apartment"
      ]
    ]
  ]
  "type" => "studio_apartment"
  1 => array:1 [
    0 => array:2 [
      "rent" => "5000"
      "house_quantity" => "2"
    ]
  ]
]

如何正确地合并这样的数组,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-02 21:18:47

好的,假设你有两个数组

$array1

代码语言:javascript
复制
Array(2){
    [number] => 1,
    [address] => "Park Ave 273",
    [name] => "Peter Jones"
}

然后是一个干净的$array2,我将把我的信息混合在一起,我必须指定我希望第一个数组进入的索引,例如:

代码语言:javascript
复制
$array1 = array(
        "number" => 1,
        "address" => "Park Ave 273",
        "name" => "Peter Jones"
    );
    $array2 = array();
    $array2['client'] = $array1;

将返回:

代码语言:javascript
复制
Array
(
    [client] => Array
        (
            [number] => 1
            [address] => Park Ave 273
            [name] => Peter Jones
        )

)

如果您有多个客户端(在本例中),则必须为每个客户端执行一个foreach循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档