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