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

数组合并和覆盖

数组合并和覆盖

PHP
慕标5832272 2022-07-22 16:31:58
我想知道是否可以合并两个数组,然后覆盖原始数组的属性。$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]现在,我所拥有的是$originalArrayis [1,2,3], then $newArray['first']is[1,2,3,4,5]和 then $newArray['second']is [1,2,3,6,7],这是非常有意义的,因为$originalArray它被合并到两个实例上first,但没有被覆盖。second$originalArray我想知道这是否可能?我们可以中间覆盖$originalArraywithin的值$newArray吗?
查看完整描述

4 回答

?
胡说叔叔

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

使用附加变量来保存累积的合并。


$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-07-22
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

这是您想要执行的操作:


$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-07-22
?
慕的地10843

TA贡献1785条经验 获得超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-07-22
?
三国纷争

TA贡献1804条经验 获得超7个赞

试试下面的代码。它为你工作。


<?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-07-22
  • 4 回答
  • 0 关注
  • 149 浏览

添加回答

举报

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