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 // }