* 堆栈与队列是最常用的二种数据结构,至于什么是堆栈与队列已超出课程要求
* 大家现在只要知道,堆栈与队列可以快速的在数组二端进行元素的添加与删除操作即可
* 数组的堆栈操作:元素的添加与删除只允许在数组的一端进行
* 一、尾部
* 1. array_push(array, value1[,value2...):入栈,返回新数组数量
* 2. array_pop(array):出栈,弹出最后一个元素,数组长度减1
* 二、头部
* 1. array_unshift(array,value1[,value2...):入栈,返回新数组数量
* 2. array_shift(array):出栈,弹出头部第一个元素,数组长度减1
* 数组的队列操作:元素的添加与删除允许在二端进行
* 一、尾部入队,头部出队
* 1. array_push(array, value1[,value2...):入队,返回新数组数量
* 2. array_shift(array):出队,弹出头部第一个元素,数组长度减1
* 二、头部入队,尾部出队
* 1. array_unshift(array,value1[,value2...):入队,返回新数组数量
* 2. array_pop(array):出队,弹出最后一个元素,数组长度减1
* 注意:
* 1. 添加的元素总是以索引元素方式出现,并且可以同时添加多个
* 2. 删除只能一次弹出一个元素
* 3. 增删操作都会引起数组指针的重置操作reset()
echo '<pre class="brush:php;toolbar:false">'; $user = ['id'=>5,'name'=>'peter','gender'=>'male','age'=>30]; print_r($user); //查看数组 echo '<hr color="red">';
//第一、模拟堆栈操作:元素增删仅允许在一端进行
//1. array_push(array, value1[,value2...):尾部入栈,返回新数组数量
echo array_push($user, 'php中文网','www.php.cn'),'<br>'; print_r($user); //查看新成的数组
//2. array_pop(array):尾部出栈,弹出最后一个元素,数组长度减1
echo array_pop($user),'<br>'; print_r($user); //查看新成的数组
//再从尾部弹出一个元素,已经恢复到原始状态了
echo array_pop($user),'<br>'; print_r($user); //查看新成的数组
//3. array_unshift(array,value1[,value2...):头部入栈,返回新数组数量
echo array_unshift($user, 'php中文网','www.php.cn'),'<br>'; print_r($user); //查看新成的数组
//4. array_shift(array):头部出栈,弹出头部第一个元素,数组长度减1
echo array_shift($user),'<br>'; print_r($user); //查看新成的数组 echo array_shift($user),'<br>'; print_r($user); //查看新成的数组
//第二: 模拟队列操作: 增删必须在二端进行,不允许在同一端完成
// 1. array_push(array, value1[,value2...):尾部入队,返回新数组数量
echo array_push($user, 'php中文网','www.php.cn'),'<br>'; print_r($user); //查看新成的数组
// 2. array_shift(array):头部出队,弹出头部第一个元素,数组长度减1
echo array_shift($user),'<br>'; //出队的id=5这个元素,当然返回的只有值5 print_r($user); //查看新成的数组
// 3. array_unshift(array,value1[,value2...):头部入队,返回新数组数量
echo array_unshift($user, '华为','小米'),'<br>'; print_r($user); //查看新成的数组
// 4. array_pop(array):尾部出队,弹出最后一个元素,数组长度减1
echo array_pop($user),'<br>'; print_r($user); //查看新成的数组