array_push、array_pop、array_shift和array_unshift区别
2015-08-31 17:23:43 小德 PHP 访问次数 1047





array_push、array_pop   (相当于是堆栈)

、array_shift和array_unshift区别(相当于是队列)

array_push(array,value1,..,) 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。

注释:即使数组中有字符串键名,新添加的元素也始终是数字键

例如:

<?php
    $a = array("Dog","Cat");
    $b = (array_push($a,"Horse","Bird"));
    echo $b.'</br>';
    print_r($a);
?>
结果:b=4,数组的新长度;

         $a的内容: Array (    [0] => Dog    [1] => Cat    [2] => Horse    [3] => Bird )       


array_pop() 函数删除数组中的最后一个元素。且反回删除的元素。


<?php
$a=array("Dog","Cat","Horse");
$b=array_pop($a);
echo $b.'</br>';
print_r($a);
?>

结果:Horse//$b 为array_pop()删除最后一个元素返回的最后一个元素
Array (    [0] => Dog    [1] => Cat )      //删除最后一个元素的$a;




array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值。注释:如果键是数字的,所有元素都将获得新的键,从 0 开始,并以 1 递增。


<?php
    $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
    echo array_shift($a).'</br>';
    print_r ($a);
?>

结果:

    Dog//删除的第一个函数的值 返回
    Array (    [b] => Cat    [c] => Horse )//删除第一个元素后的新数组


array_unshift() 函数在数组开头插入一个或多个元素。    被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。

该函数会返回数组中元素的个数。 注释:所有的数值键名将修改为从零开始重新计数,所有的字符串键名保持不变。


<?php
    $a=array("a"=>"Cat","b"=>"Dog");
    print_r(array_unshift($a,"Horse"));
    echo'</br>';
    print_r($a);
?>


结果:3//返回数组中元素的个数。

Array (    [0] => Horse    [a] => Cat    [b] => Dog )//在的开头插入元素后的新数组



总结:push()和pop()是在数组尾部进行插入或删除;shift()和unshift()是在数组开头进行删除和插入;删除函数都会返回被删除的元素,插入函数都会返回执行插入函数后的新数组的元素个数。