gpt4 book ai didi

php - Array_splice 充当 array_slice?

转载 作者:可可西里 更新时间:2023-11-01 12:50:10 25 4
gpt4 key购买 nike

我无法准确理解 array_splice 和 array_slice 的作用。据我所知,array_splice 应该在取出某些元素后返回一个数组,而 array_slice 应该检索数组的一部分。

以下代码来自php.net/array_splice手册显示此代码应该有效。

$input = array("red", "green", "blue", "yellow");
var_dump(array_splice($input, 2));
// $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
var_dump(array_slice($input, 2));
// $input is now array("red", "green")

然而,当我在 php 5.3.4 和 5.1.6 上运行这段代码时,结果是

array
0 => string 'blue' (length=4)
1 => string 'yellow' (length=6)
array
0 => string 'blue' (length=4)
1 => string 'yellow' (length=6)

是我误解了手册还是这是一个错误?在我看来,array_splice 的行为就像 array_slice

而且它似乎没有做替换

$input = array("red", "green", "blue", "yellow");
var_dump(array_splice($input, 2, 2, array('foo')));

输出

array
0 => string 'blue' (length=4)
1 => string 'yellow' (length=6)

有人可以确认这是一个错误吗?如果不能,请解释一下这应该如何工作?

编辑:

Nvm 我想通了。我不应该在 array_splice 上使用 var_dump,而是在 array_splice 更改 $input 而不是返回新值时使用 $input。

array_slice 返回值,而 array_splice 将值设置为 $input。

MOD请关闭或删除这个

最佳答案

来自 the docs :

Description
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )

Removes the elements designated by offset and length from the input array, and replaces them with the elements of the replacement array, if supplied.

...

Return Values

Returns the array consisting of the extracted elements.

你只是非常非常困惑。

关于php - Array_splice 充当 array_slice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901673/

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