php数组可以用栈的角度来操作,这其中包含了如下函数,array_pop(),array_push,array_shift(),array_unshift()。

array_pop()函数

将数组的最后一个元素移出,也就是出栈;

函数的参数只有一个就是欲操作的数组,这里是引用传值,会改变欲操作的数组;

函数返回出栈那个元素。

 1 $arr = [1, 2, 3, 4];
 2 array_pop( $arr );
 3 var_dump( $arr );
 4 // array(3) {
 5 //     [0] =>
 6 //     int(1)
 7 //     [1] =>
 8 //     int(2)
 9 //     [2] =>
10 //     int(3)
11 //   }

array_push()函数

与array_pop函数执行相反的操作,从数组的末尾添加一个或多个元素,也就是入栈;

1 array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int

函数参数第一个是目标数组(引用传值),接下来就是欲要入栈的值;

函数返回入栈数组的个数。

 1 $arr = [1, 2, 3, 4];
 2 var_dump( array_push( $arr, 5, 6 ) );
 3 var_dump( $arr );
 4 // int(6)
 5 // array(6) {
 6 //     [0] =>
 7 //     int(1)
 8 //     [1] =>
 9 //     int(2)
10 //     [2] =>
11 //     int(3)
12 //     [3] =>
13 //     int(4)
14 //     [4] =>
15 //     int(5)
16 //     [5] =>
17 //     int(6)
18 //   }

array_shift()函数

移出数组的第一个元素,数组的数字键都会从零开始重新计数,非数字键不会;

函数的参数只有一个,就是与操作的数组,引用传值。

函数会返回移出的那个元素,如果没有就是null。

 1 $arr = [1, 2, 3, 4];
 2 var_dump( array_shift( $arr ) );
 3 var_dump( $arr );
 4 // int(1)
 5 // array(3) {
 6 //     [0] =>
 7 //     int(2)
 8 //     [1] =>
 9 //     int(3)
10 //     [2] =>
11 //     int(4)
12 //   }

array_unshift()函数

从数组的开头插入一个或多个值(传值的顺序就是数组中新插入元素的顺序);

1 array_unshift ( array &$array [, mixed $... ] ) : int

插完后,数组的数字键都会从零开始重新计数,非数字键不会;

函数会返回插入完成后数组的新长度。

 1 $arr = [1, 2, 3, 4];
 2 var_dump( array_unshift( $arr, -2, -1, 0 ) );
 3 var_dump( $arr );
 4 // int(7)
 5 // array(7) {
 6 //     [0] =>
 7 //     int(-2)
 8 //     [1] =>
 9 //     int(-1)
10 //     [2] =>
11 //     int(0)
12 //     [3] =>
13 //     int(1)
14 //     [4] =>
15 //     int(2)
16 //     [5] =>
17 //     int(3)
18 //     [6] =>
19 //     int(4)
20 //   }