【问题标题】:Merge a simple array and nested array according to same keys根据相同的键合并简单数组和嵌套数组
【发布时间】:2018-05-26 03:29:13
【问题描述】:

我有这样的数组 1

Array
(
    [0] => 1
    [1] => 2
)

第二个数组是

Array
(
    [0] => Array
        (
            [FullName] => Bhupat Chippa
        )

    [1] => Array
        (
            [FullName] => Dvs Patel
        )
)

我想以将值添加到具有相同键的第二个数组的方式合并它。所需的输出看起来像这样或某种方式,以便我可以将 Array 1 的值与 Second Array Only 一起使用:

Array
(
    [0] => Array
        (
            [FullName] => Bhupat Chippa
            [0] => 1
        )

    [1] => Array
        (
            [FullName] => Dvs Patel
            [1] => 2
        )

)

【问题讨论】:

  • 一个简单的foreach() 循环就可以解决问题。试试看它是否有效。
  • 投了反对票,因为这很简单,没有增加任何努力。
  • 其实和数据库有很大关系,为了便于理解,我只是简化了问题,感谢您的帮助,谢谢!

标签: php arrays merge


【解决方案1】:

您可以申请简单的foreach() 来做到这一点

$final = [];

foreach($array2 as $key =>$arr2 ){
  $final[$key]['FullName'] = $arr2['FullName'];
  $final[$key][$key] = $array1[$key];
}

print_r($final);

输出:- https://eval.in/1010437

【讨论】:

  • 我对你的答案投了赞成票,但请不要鼓励人们不经尝试或不努力就提出问题。
  • 实际上给出了一个没有给出预期结果的答案,这就是为什么我给出另一个解决方案
【解决方案2】:

如果两个数组的长度相同,您可以使用array_map 传递array_keys 作为第二个参数:

$array1 = ["1", "2"];
$array2 = [
    ["FullName" => "Bhupat Chippa"],
    ["FullName" => "Dvs Patel"]
];

$result = array_map(function($x, $y) use ($array1){
    $x[$y] = $array1[$y];
    return $x;
}, $array2, array_keys($array1));

print_r($result);

Demo

这会给你:

Array
(
    [0] => Array
        (
            [FullName] => Bhupat Chippa
            [0] => 1
        )

    [1] => Array
        (
            [FullName] => Dvs Patel
            [1] => 2
        )

)

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2020-08-10
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多