嗨我有一个数组,我需要以有序的方式更改键,但不要更改值的顺序。 e.g。
$a = array (
0=>'h',
1=>'blabla',
2=>'yes'
);
我用过
unset($a[1]);
但我需要密钥才能重新开始计算密钥 0,1,2 ... etccc 所以我最终不会:
array(
0 => 'h',
2 => 'yes'
)
但它应该回来了:
array(
0 => 'h',
1 => 'yes'
)
答案 0 :(得分:5)
您需要在数组上应用array_values来重新编制索引。
$a = array_values($a);
奖励:如果您还需要订购价值,可以使用sort,它也会重新索引您的数组。
注意:通过使用任何array_values或sort,您将丢失任何可能的字符串键。
答案 1 :(得分:3)
点击array_values
:
$a = array (
0=>'h',
1=>'blabla',
2=>'yes'
);
unset($a[1]);
$a = array_values($a);
var_dump($a);
/*
array(2) {
[0]=>
string(1) "h"
[1]=>
string(3) "yes"
}
*/
答案 2 :(得分:2)
你也可以使用array_splice()代替unset(),它会自动重新索引数组元素:
$a = array (
0=>'h',
1=>'blabla',
2=>'yes'
);
array_splice($a,1,1);
var_dump($a);