PHP - объединение многомерного массива в один массив - PullRequest
2 голосов
/ 22 мая 2019

У меня есть 2 таких массива:

Массив один:

[
    [
        "id" => 1234
        "name" => "John"
    ],
    [
        "id" => 1235
        "name" => "doe"
    ]
]

Массив два:

[
    [
        "age" => 12
    ],
    [
        "age" => 13
    ]
]

Я пробовал использовать его и объединить array_reduce, array_map или array_merge_recursive, но он все еще не соответствует результатам.

Как я могу сделать два массива, как показано ниже?

[
    [
        "id" => 1234
        "name" => "John"
        "age" => 12
    ],
    [
        "id" => 1235
        "name" => "doe"
        "age" => 13
    ]
]

Пожалуйста, помогите мне. спасибо

Ответы [ 3 ]

6 голосов
/ 22 мая 2019

массив-карта с комбинацией массив-слияние должен добиться цели:

$c = array_map('array_merge', $a, $b);

Живой пример: 3v4l

1 голос
/ 22 мая 2019

Вы можете использовать array_merge как:

<?php

$array = array(
                  ["id" => "1",  
                   "name" => "denba"
                 ],

                    ["id" => "1",  
                   "name" => "chpa7"
                 ],

              );              

$ages = array(
                  ["age" => "15",  

                 ],

                    ["age" => "17", 
                 ],

              );

foreach($array as $key => $value){
    $array[$key]=array_merge($array[$key], $ages[$key]);
}


var_dump($array); 
/*output:
    array(2) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(5) "denba"
    ["age"]=>
    string(2) "15"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(5) "chpa7"
    ["age"]=>
    string(2) "17"
  }
}
*/
1 голос
/ 22 мая 2019

Демонстрационная ссылка

Вы можете выполнить итерацию первого массива и объединить его со вторым массивом с соответствующим индексом

$merged =[];
foreach($a as $k => $val){
    array_push($merged,array_merge($val,$b[$k]));
}
print_r($merged);
...