如何使用数组切片和拼接替换数组元素?

时间:2012-02-23 15:37:36

标签: php arrays

为什么我不能用这个简单的代码片段替换数组元素?

<?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

3 个答案:

答案 0 :(得分:2)

根据PHP的array_splice文档:

  

返回由提取的元素组成的数组。

您正在尝试打印通过拼接删除的元素,这些元素是从索引0开始的2个元素 - 因此ab

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>";

这是因为原始数组已被修改,因此您无法打印切片函数的返回值。