删除元素后重新排列数组

时间:2011-01-18 14:25:10

标签: php

喜 当我取消设置5个元素并打印数组时,我有像10个元素的$ arr数组,它打印出没有5个indx的数组。现在我想用9个元素重新排列数组,前四个值索引将是相同的但是在此值之后应该转移到(previous index-1)。 有没有简单的方法(数组函数)。或者我必须为此做出完整的逻辑。

3 个答案:

答案 0 :(得分:4)

好吧,如果您想维护订单,但只想重新索引密钥,则可以使用array_values()函数。

$a = array(
    0 => 'a', 
    1 => 'b',
    2 => 'c', 
    3 => 'd'
);
unset($a[1]);
$a = array(
    0 => 'a', 
    2 => 'c', 
    3 => 'd'
); // Note, this is what $a is now, the re-assignment is for illustration only
$a = array_values($a);
$a = array(
    0 => 'a', 
    1 => 'c', 
    2 => 'd'
); // Note, this is what $a is now, the re-assignment is for illustration only

答案 1 :(得分:3)

您应该使用array_splice而不是unset来删除数组中的元素。这样做会重新排序其余元素:

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, 1);
// $input is now array("red", "blue", "yellow")

答案 2 :(得分:0)

不太确定是否有更好的方法但你可以使用array_reverse()两次:

$array = array_reverse($array, false);
$array = array_reverse($array, false);