douqiong8412 2016-03-11 09:04
浏览 137
已采纳

array_push()和array_merge()有什么区别? [关闭]

I am adding these two elements into a new array using these two functions array_push() and array_merge().

    $a1 = array();
    $a2 = 'foo';
    echo '<pre>';
    print_r( array_merge($a1, (array)$a2) );
    echo '</pre>';

And with ..

    $a1 = array();
    $a2 = 'foo';
    array_push($a1, $a2);
    echo '<pre>';
    print_r($a1);
    echo '</pre>';

all these are printing same..

Array
 (
    [0] => foo
 )

Now my question is what is the main difference between these two functions in functionality based. I am new in php, so please help me.

  • 写回答

4条回答 默认 最新

  • dongye8110 2016-03-11 09:18
    关注

    You can refer php manual, but for now i will explain you the difference like this.

    array_push() treats array as a stack, and pushes the passed variables onto the end of array . The length of array increases by the number of variables pushed. Has the same effect as:

    Example

    <?php
    $stack = array( "orange" , "banana" );
    array_push
    ($stack , "1" , "2");
    print_r ($stack );
    ?>
    The above example will output:
    Array
    (
        [0] => orange
        [1] => banana
        [2] => 1
        [3] => 2
    )
    

    Array_merge() Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended. Values in the input array with numeric keys will be renumbered with incrementing keys starting from zero in the result array. Example

    <?php
    $array1 = array
    ("color" => "yellow" , 0, 1);
    $array2 = array
    ("a" , "b" , "color" => "blue" , "shape
    " =>"rectangle" , 1);
    $result = array_merge
    ($array1 , $array2 );
    print_r ($result );
    ?>
    

    The above example will output:

    Array
    (
        [color] => blue
        [0] => 0
        [1] => 1
        [2] => a
        [3] => b
        [shape] => rectangle
        [4] => 1
    )
    

    array_push — Push one or more elements onto the end of array

    array_push() treats array as a stack, and pushes the passed variables onto the end of array. The length of array increases by the number of variables pushed.

    array_merge — Merge one or more arrays

    Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.

        <?php
        $a1 = array('foo', 'bar');
        $a2 = 'foo';
        echo '<br />';
        print_r( array_merge($a1, (array)$a2) );
        $a1 = array('foo', 'bar');
        $a2 = 'foo';
        echo '<br />';
        array_push($a1, $a2);
        print_r($a1);
        ?>
    

    As per performance array_merge is slow.There is a discussion you should read.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器