php如何互换一个数组的首尾元素 中间不变 首尾互换
2017-04-26 17:50
435 查看
群里有人提出一个问题 如何互换一个数组的首尾元素 中间不变 首尾互换
代码如下:
这种实现方案是弹出第一个和最后一个 然后组合为数组。
我又想了另外一个方法
该方法采用中间变量互换首尾值 ,步骤为 获取第一个 和最后一个 采用中间变量进行互换
郭大师提出了他自己的写法
这个方法比较特别,采用数组复制,然后交叉首尾进行赋值,思路奇特,不过有点问题是 如果处理大数组这样可能会比较耗内存。
代码如下:
<?php $array=array(1,2,3,4,5,6,7,8,9,10); $first=array_shift($array); $last=array_pop($array); $array=array_merge(array($last),$array,array($first)); ?>
这种实现方案是弹出第一个和最后一个 然后组合为数组。
我又想了另外一个方法
<?php $array=array(1,2,3,4,5,6,7,8,9,10); $tmp=current($array); $array[0]=end($array); $array[count($array)-1]=$tmp; ?>
该方法采用中间变量互换首尾值 ,步骤为 获取第一个 和最后一个 采用中间变量进行互换
郭大师提出了他自己的写法
<?php $array=array(1,2,3,4,5,6,7,8,9,10); $copy = $array; $copy[0] = $copy[count($array)-1]; $copy[count($array)-1] = $array[0]; ?>
这个方法比较特别,采用数组复制,然后交叉首尾进行赋值,思路奇特,不过有点问题是 如果处理大数组这样可能会比较耗内存。
相关文章推荐
- php如何增加一个元素到数组
- php如何从数组中删除一个元素
- PHP如何判断一个元素是否在已知数组中
- php如何找出一个数组重复次数最高的元素?
- PHP中如何获得数组中指定元素的前一个或后一个元素
- 如何将一个数组的元素顺序打乱
- 这是一个我面试某公司的算法题目:对一个字符数组进行排序,根据给定的字符,大于它的,放在数组的左边,小于它的,放在数组的右边,且数组中的元素之间的相对位置要保持不变。
- php如何遍历一个复杂的多维数组
- 20100127_1 设一维数组V中存有N个整数,试写一个算法,将其中的非零元素移到数组的前面来,连续存放,相对位置不变。
- 华为:给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放到 output[]数组最中间的位置,如果数组长度n为偶数。。
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 【原创】将一个数组中的0元素全部排到数组的右边,其他元素相对顺序保持不变。
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 用javascript如何删除一个数组中的重复元素
- php中如何初始化一个数组
- Java Scrfipt 数组如何删除一个元素
- 如何判断一个整数数组中是否有重复元素
- 如何在javascript数组中删除一个元素并改变数组长度
- 面试题:给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,那么元素的存储的角标位如何获取。
- php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。