如何合并在PHP中这2个数组? [英] How to merge these 2 arrays in PHP?

查看:117
本文介绍了如何合并在PHP中这2个数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数组 $数组1 不同量键和值对的:

I have an array $array1 with different amount of key and value pairs:

Array
(
    [0] => Array
        (
            [ID] => 39
            [title] => Apple
        )

    [1] => Array
        (
            [ID] => 40
            [title] => Orange
        )

)

和另一个阵列 $数组2

Array
(
    [0] => 273
    [1] => 386

)

和我想要得到这样的:

Array
(
    [0] => Array
        (
            [ID] => 39
            [title] => Apple
            [pages] => 273
        )

    [1] => Array
        (
            [ID] => 40
            [title] => Orange
            [pages] => 386
        )

)

项目的每个阵列中的数量是相同的和相对应,所以,我们并不需要检查这一点,所以,如何合并会这样?

The number of items in each array is the same and the correspond, so, we don't need to check this, so, how to merge it like that?

推荐答案

使用 array_replace_recursive 如果你想与整数键,或合并array_merge_recursive 如果您希望只合并字符串键

use array_replace_recursive if you want merge with integer keys, or array_merge_recursive if you want merge only string keys

<?php

$a1 = array(
    0 => array
    (
        "ID" => 39,
        "title" => "Apple"
    ),

    1 => array(
        "ID" => 40,
        "title" => "Orange"
    )

);

$a2 = array(
    0 => array
    (
        "pages" => 273,
        "year" => 1981
    ),

    1 => array(
        "pages" => 386,
        "year" => 1979
    )

);

$a3 = array_replace_recursive($a1, $a2);

var_dump($a3);

结果:

array(2) {
  [0] =>
  array(4) {
    'ID' =>
    int(39)
    'title' =>
    string(5) "Apple"
    'pages' =>
    int(273)
    'year' =>
    int(1981)
  }
  [1] =>
  array(4) {
    'ID' =>
    int(40)
    'title' =>
    string(6) "Orange"
    'pages' =>
    int(386)
    'year' =>
    int(1979)
  }
}

答更新的问题:

<?php

$a1 = array(
    0 => array
    (
        "ID" => 39,
        "title" => "Apple"
    ),

    1 => array(
        "ID" => 40,
        "title" => "Orange"
    )

);

$a2 = array(
    0 => 31,
    1 => 324
);

$defaultValue = 0;
foreach ($a1 as $key => $value) {
    $a1[$key]['pages'] = isset($a2[$key]) ? $a2[$key] : $defaultValue;
}
var_dump($a1);

结果:

array(2) {
  [0] =>
  array(3) {
    'ID' =>
    int(39)
    'title' =>
    string(5) "Apple"
    'pages' =>
    int(31)
  }
  [1] =>
  array(3) {
    'ID' =>
    int(40)
    'title' =>
    string(6) "Orange"
    'pages' =>
    int(324)
  }
}

这篇关于如何合并在PHP中这2个数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆