2012-02-23 64 views
0

我怎麼不能用這個簡單的代碼片段替換數組元素?如何使用數組切片和拼接來替換數組元素?

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

回答

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

根據PHP的文檔array_splice

返回組成的數組提取了元素。

您要打印其通過剪接去除,而這些都是從索引0開始2個元件的元件 - 因此ab

array_splice修改原始數組,所以你需要打印,而不是...

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

這是因爲原始數組被修改,因此無法打印切片函數的返回值。