简体   繁体   English

PHP合并普通数组中的多维数组键

[英]PHP merge multi-dimensional array keys from normal array

I've got these two php arrays I want to merge, one is a multi dimensional array and the needle is a normal single dimensional array : 我有两个要合并的php数组,一个是多维数组,而needle是普通的一维数组:

Array containing ALL possible locations: 包含所有可能位置的数组:

Array
(
    [Bedfordview] => 0
    [Killarney] => 0
    [Melrose] => 0
    [Midrand] => 0
    [Morningside] => 0
)

I want to merge it with the follow multidimentional array: 我想将其与以下多维数组合并:

Array
(
    [11] => 
    [12] => Array
        (
            [Bedfordview] => 7
            [Melrose] => 2
            [Midrand] => 87
            [Morningside] => 4
        )

    [13] => Array
        (
            [Morningside] => 8
            [Killarney] => 1
        )
)

I Need the end result to look like this: 我需要最终结果看起来像这样:

Array
(
    [11] => Array
        (
            [Bedfordview] => 0          ==FROM FIRST ARRAY
            [Killarney] => 0            ==FROM FIRST ARRAY
            [Melrose] => 0              ==FROM FIRST ARRAY
            [Midrand] => 0              ==FROM FIRST ARRAY
            [Morningside] => 0          ==FROM FIRST ARRAY
        )
    [12] => Array
        (
            [Bedfordview] => 7
            [Melrose] => 2
            [Midrand] => 87
            [Morningside] => 4
            [Killarney] => 0            ==FROM FIRST ARRAY
        )

    [13] => Array
        (
            [Bedfordview] => 0          ==FROM FIRST ARRAY
            [Melrose] => 0              ==FROM FIRST ARRAY
            [Midrand] => 0              ==FROM FIRST ARRAY
            [Morningside] => 8
            [Killarney] => 1
        )
)

Any ideas? 有任何想法吗?

For this, I would use array_merge . 为此,我将使用array_merge

Code

<?php

$locations = array(
    'Bedfordview' => 0,
    'Killarney'   => 0,
    'Melrose'     => 0,
    'Midrand'     => 0,
    'Morningside' => 0
);

$data = array(
    11 => array(),
    12 => array(
        'Bedfordview' => 7,
        'Melrose'     => 2,
        'Midrand'     => 87,
        'Morningside' => 4
    ),
    13 => array(
        'Morningside' => 8,
        'Killarney'   => 1
    )
);


$result = array();
foreach ($data as $key => $values) {
    $result[$key] = array_merge($locations, $values);
}

print_r($result);

Result 结果

Array
(
    [11] => Array
        (
            [Bedfordview] => 0
            [Killarney] => 0
            [Melrose] => 0
            [Midrand] => 0
            [Morningside] => 0
        )

    [12] => Array
        (
            [Bedfordview] => 7
            [Killarney] => 0
            [Melrose] => 2
            [Midrand] => 87
            [Morningside] => 4
        )

    [13] => Array
        (
            [Bedfordview] => 0
            [Killarney] => 1
            [Melrose] => 0
            [Midrand] => 0
            [Morningside] => 8
        )
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM