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 关注
- 127 浏览
添加回答
举报