php数组重新填充键

时间:2010-11-08 12:47:03

标签: php arrays sorting

嗨我有一个数组,我需要以有序的方式更改键,但不要更改值的顺序。 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'
)

3 个答案:

答案 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);