使用array_fill php消除数组索引

我经历了这个帖子 –

    
php – array_fill negative indices

PHP确实没有说明为什么它从(-ive)start_index之后的0开始,但是,但是,如果我尝试从-2索引的array_fill获得已经定义了-1和0索引的数组,原始数组就会消失.

$a = array('-1'=>'harry','0'=>'alex');  
$a = array_fill(-2,4,'roger');

print_r($a); 

产量

Array ( [-2] => Roger [0] => Roger [1] => Roger [2] => Roger ) 

和$a [-1]是未定义的偏移量错误. $a [0]被覆盖到罗杰.

任何解释??并为类似情况的未来工作提示.. !!

最佳答案 你可以试试array_replace

$a = array('-1'=>'harry','0'=>'alex');
$b = array_fill(-2, 4, 'Roger');

$c = array_replace($b, $a);
ksort($c);
print_r($c);

产量

Array
(
    [-2] => Roger 
    [-1] => harry
    [0] => alex
    [1] => Roger 
    [2] => Roger 
)
点赞