php如何互换一个数组的首尾元素 中间不变 首尾互换
群里有人提出一个问题 如何互换一个数组的首尾元素 中间不变 首尾互换
代码如下:
<?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]; ?>
这个方法比较特别,采用数组复制,然后交叉首尾进行赋值,思路奇特,不过有点问题是 如果处理大数组这样可能会比较耗内存。