3 回答

TA貢獻1821條經驗 獲得超6個贊
有幾種方法可以做到這一點,問題是您的代碼在存儲它并嘗試移動它之前覆蓋了開始。此代碼獲取該值,然后覆蓋它,然后更新最后一項...
function reverse_start_with_last(array &$arr)
{
$first = $arr[0];
$arr[0] = end($arr);
$arr[count($arr)-1] = $first;
print_r($arr);
}
reverse_start_with_last($my_array);
這假定一個數字索引數組,而不是任何其他形式的索引。

TA貢獻1836條經驗 獲得超13個贊
此函數將第一個元素與數組的最后一個元素交換。
function array_change_first_last(array &$arr)
{
$last = end($arr);
$arr[key($arr)] = reset($arr);
$arr[key($arr)] = $last;
}
$my_array = [0, 1, 2, 3, 4];
array_change_first_last($my_array);
此函數適用于數字和關聯數組。密鑰保留,僅交換值。
$ass_array = ['a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'z'=> 4];
array_change_first_last($ass_array);
結果:
array(5) { ["a"]=> int(4) ["b"]=> int(1) ["c"]=> int(2) ["d"]=> int(3) ["z"]=> int(0) }

TA貢獻1802條經驗 獲得超6個贊
您可以移動第一個元素并彈出最后一個并存儲它們,然后取消移動最后一個并推送第一個
$my_array = [0, 1, 2, 3, 4];
function reverse_start_with_last(array &$arr)
{
$first = array_shift($arr); // remove the first element and store it
$last = array_pop($arr); // remove the last and store it
array_unshift($arr, $last); // add the last at the beginning of the array
array_push($arr, $first); // add the first at the end of the array
}
reverse_start_with_last($my_array);
print_r($my_array)
- 3 回答
- 0 關注
- 158 瀏覽
添加回答
舉報