为什么我不能用这个简单的代码片段替换数组元素?
<?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
答案 0 :(得分:2)
根据PHP的array_splice
文档:
返回由提取的元素组成的数组。
您正在尝试打印通过拼接删除的元素,这些元素是从索引0开始的2个元素 - 因此a
和b
。
array_splice
修改原始数组,因此您需要打印它...
答案 1 :(得分:1)
只是做:
$input = array("a", "b", "c", "d", "e");
$result = array_slice($input, -2, 2, TRUE);
var_dump($result);
已经足够了(Demo):
array(2) {
[3]=>
string(1) "d"
[4]=>
string(1) "e"
}
array_slice
类似于substr
这样的数组适用于字符串。
答案 2 :(得分:1)
$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>";
这是因为原始数组已被修改,因此您无法打印切片函数的返回值。