将一个数组合并到另一个数组

时间:2020-01-29 11:21:44

标签: php arrays

我有2个数组

数组1:

array:3 [▼
  0 => 1
  1 => 2.3
  2 => 4.5
]

数组2:

array:3 [▼
  0 => array:2 [▼
    "name" => "john"
    "age" => 34
  ]
  1 => array:2 [▼
    "name" => "doe"
    "age" => 12
  ]
  2 => array:2 [▼
    "name" => "kelvin"
    "age" => 14
  ]
]

如何将数组1合并到数组2中,以便获得类似这样的内容-

array:3 [▼
      0 => array:3 [▼
        "name" => "john"
        "age" => 34,
        "score" => 1
      ]
      1 => array:3 [▼
        "name" => "doe"
        "age" => 12,
        "score" => 2.3
      ]
      2 => array:3 [▼
        "name" => "kelvin"
        "age" => 14,
        "score" => 4.5
      ]
    ]

请注意,数组1的值现在具有称为“得分”的键。

2 个答案:

答案 0 :(得分:2)

您可以对reference &使用foreach循环:

 $ar = [1,2,3.4]; 
 $ar2 = [['name'=>'Joe','age' => 33],['name'=>'Joe2','age' => 33],['name'=>'Joe3','age' => 33]];

 foreach($ar2 as $ind=>&$person){
     $person['score'] = $ar[$ind];
 }

 print_r($ar2);

Demo

输出:

Array
(
    [0] => Array
        (
            [name] => Joe
            [age] => 33
            [score] => 1
        )

    [1] => Array
        (
            [name] => Joe2
            [age] => 33
            [score] => 2
        )

    [2] => Array
        (
            [name] => Joe3
            [age] => 33
            [score] => 3.4
        )

)

答案 1 :(得分:1)

您还可以使用array_walk遍历数组。

<?php

$a = [1,2.3,4.5];

$b = [
    ["name" => "john", "age" => 34],
    ["name" => "doe","age" => 12],
    ["name" => "kelvin", "age" => 14]
];

array_walk($a,function($val,$key) use (&$b){
    $b[$key]['score'] = $val;  
});

print_r($b);

演示https://3v4l.org/58rXG

相关问题