【发布时间】:2020-05-23 13:37:30
【问题描述】:
我想使用递归来反转索引数组中的值。输出应与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() 是数组部分的链接,对吗?
为什么我的递归交换技术不会影响内部元素?
【问题讨论】:
-
array_reverse()
-
应该是
array_slice(...),而不是$array_slice(...)。它是一个函数,而不是一个变量。 -
不太清楚你想在这里问什么。但是
$array_slice应该是array_slice开头的,你不想在这里使用“变量函数”。 -
PHP 并没有为此优化。考虑如何在 PHP 中以更具功能性的编程风格进行编码可能会很有趣,但请不要以人们将使用的任何方式编写此代码。
标签: php arrays recursion slice reverse