php数组与数据栈相关函数
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 // }
这是我的签名