为什么我不能用我的这个简单代码片段替换数组元素?
<?php
$input = array("a", "b", "c", "d", "e");
$replace = array_slice($input, -2, 2,true);
echo "<pre>",print_r(array_splice($input, 0, 2,$replace)),"</pre>";
?>
输出就像这个
Array
(
[0] => a
[1] => b
)
1
我希望是
Array
(
[3] => d
[4] => e
)
1
根据PHP的array_splice
:文档
返回由提取的元素组成的数组。
您正在尝试打印通过拼接删除的元素,这些元素是从索引0开始的2个元素,因此是a
和b
。
array_splice
修改了原始数组,因此您需要打印它。。。
只需执行:
$input = array("a", "b", "c", "d", "e");
$result = array_slice($input, -2, 2, TRUE);
var_dump($result);
已经足够了(演示):
array(2) {
[3]=>
string(1) "d"
[4]=>
string(1) "e"
}
array_slice
对数组的作用类似于substr
对字符串的作用。
$input = array("a", "b", "c", "d", "e");
$replace = array_slice($input, -2, 2,true);
array_splice($input, 0, 2,$replace);
echo "<pre>";
print_r($input);
echo "</pre>";
这是因为原始数组被修改了,所以不能打印slice函数的返回值。