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];
?>

這個方法比較特別,采用數組復制,然后交叉首尾進行賦值,思路奇特,不過有點問題是 如果處理大數組這樣可能會比較耗內存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM