群里有人提出一個問題 如何互換一個數組的首尾元素 中間不變 首尾互換
代碼如下:
<?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]; ?>
這個方法比較特別,采用數組復制,然后交叉首尾進行賦值,思路奇特,不過有點問題是 如果處理大數組這樣可能會比較耗內存。
