我有问题,确切地了解array_splice和array_slice做了什么。从我可以告诉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,我应该使用$ input作为array_splice更改$ input,而不是返回新值。
array_slice返回值,而array_splice将值设置为$ input。
MODs请关闭或删除它。
是的,我刚刚发帖后就明白了。早晨没有咖啡。既然你的文章解释了我提出的问题,我会标记为答案。你是对的......我们很困惑。 – Bot 2011-05-05 17:24:24