gpt4 book ai didi

php - 如何使用递归用户定义函数模拟 array_reverse()?

转载 作者:行者123 更新时间:2023-12-04 22:06:56 24 4
gpt4 key购买 nike

我想使用递归反转索引数组中的值。输出应与 array_reverse() 相同.

我的代码:

$array = [1,2,3,4,5,6,7];

function reverseString(&$s) {
if(count($s) < 2){
return;
}
$len = count($s);
$temp = $s[0];
$s[0] = $s[$len - 1];
$s[$len - 1] = $temp;
reverseString(array_slice($s, 1, $len - 2));
}

reverseString($array);
print_r($array);

返回:
Array (
[0] => 7
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 1 )
array_slice()是数组部分的链接,对吗?

为什么我的递归交换技术不会影响内部元素?

最佳答案

字符串和数组是两个不同的东西。我稍微澄清了你的算法:

<?php
$array = [1,2,3,4,5,6,7];

function reverseSequence(&$s) {
$len = count($s);
if($len < 2){
return;
}

$rest = array_slice($s, 1, $len - 2);
reverseSequence($rest);
$s = array_merge([$s[$len - 1]], $rest, [$s[0]]);
}

reverseSequence($array);
print_r($array);

输出显然是:
Array
(
[0] => 7
[1] => 6
[2] => 5
[3] => 4
[4] => 3
[5] => 2
[6] => 1
)

关于php - 如何使用递归用户定义函数模拟 array_reverse()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60113067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com