为了账号安全,请及时绑定邮箱和手机立即绑定

数组合并和覆盖

数组合并和覆盖

PHP
慕沐林林 2022-08-05 09:51:47
我想知道是否可以合并两个数组,然后覆盖原始数组的属性。$originalArray = [1,2,3];$newArray = [         'first'  => array_merge($originalArray, [4,5]),         'second' => array_merge($originalArray, [6,7]),];所以我想实现的是,然后是,然后是$originalArray[1,2,3]$newArray['first'][1,2,3,4,5]$newArray['second'][1,2,3,4,5,6,7]现在,我所拥有的是,然后是然后是,这是完全有意义的,因为在两者和实例上合并,但没有被覆盖。$originalArray[1,2,3]$newArray['first'][1,2,3,4,5]$newArray['second'][1,2,3,6,7]$originalArrayfirstsecond$originalArray我想知道这是否可能?我们可以中间覆盖 内的值吗?$originalArray$newArray
查看完整描述

4 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

使用其他变量来保存累积的合并。


$originalArray = [1,2,3];


$newArray = [

    'first' => ($tempArray = array_merge($originalArray, [4,5])),

    'second' => ($tempArray = array_merge($tempArray, [6,7])),

    'third' => ($tempArray = array_merge($tempArray, [8,9])),

    ...

];



查看完整回答
反对 回复 2022-08-05
?
慕森卡

TA贡献1806条经验 获得超8个赞

随循环合并,并使用上次合并更新原始数组。


<?php


$orig  = [1,2,3];

$trans = [

         'first'  => [4,5],

         'second' => [6,7],

];


foreach($trans as &$v) {

    $orig = $v = array_merge($orig, $v);

}

unset($v);


var_export($trans);

输出:


array (

  'first' => 

  array (

    0 => 1,

    1 => 2,

    2 => 3,

    3 => 4,

    4 => 5,

  ),

  'second' => 

  array (

    0 => 1,

    1 => 2,

    2 => 3,

    3 => 4,

    4 => 5,

    5 => 6,

    6 => 7,

  ),

)


查看完整回答
反对 回复 2022-08-05
?
慕斯王

TA贡献1864条经验 获得超2个赞

以下是您要执行的操作:


$originalArray = [1,2,3];

$newArray = [

         'first'  => array_merge($originalArray, [4,5]),

         'second' => array_merge($originalArray, [6,7]),

];



function val($newArray) { return $newArray; }

$originalArray = array_map( 'val' , $newArray);

print_r( $originalArray );


输出:


Array ( 

[first] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 

[second] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 6 [4] => 7 ) 

)


查看完整回答
反对 回复 2022-08-05
?
holdtom

TA贡献1805条经验 获得超10个赞

请尝试以下代码。它为您工作。


<?php

$originalArray = [1,2,3];


$newArray['first'] = array_merge($originalArray, [4,5]);

$newArray['second'] = array_merge($newArray['first'], [6,7]);

$newArray['third'] = array_merge($newArray['second'], [8,9]);


echo "<pre>";

print_r($newArray);

?>

=>输出

Array

(

    [first] => Array

        (

            [0] => 1

            [1] => 2

            [2] => 3

            [3] => 4

            [4] => 5

        )


    [second] => Array

        (

            [0] => 1

            [1] => 2

            [2] => 3

            [3] => 4

            [4] => 5

            [5] => 6

            [6] => 7

        )


    [third] => Array

        (

            [0] => 1

            [1] => 2

            [2] => 3

            [3] => 4

            [4] => 5

            [5] => 6

            [6] => 7

            [7] => 8

            [8] => 9

        )


)


查看完整回答
反对 回复 2022-08-05
  • 4 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信