通过数组键重新排序数组?

时间:2011-08-22 20:38:29

标签: php arrays sorting

我有两个数组,$country$redirect,每个条目都与其完全对应,例如$redirect[1]$country[1]

在整个数组中取消设置值后,我可能会留下一个仅设置$var[4]$var[2]的数组。我想从0向上重新分配数组键,以便$var[2]将其密钥重新分配给$var[0]并将$var[4]重新分配给$var[1]

基本上是sort()函数,但是按当前数组键排序,与数组的数字/字符串值相对。

这可能吗?

任何答案或建议都将非常感谢;)!

更新

我尝试同时使用ksort()array_values(),但我不确定它们是否真的需要我,因为我打算使用size_of()功能。< / p>

我的代码:

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3");
ksort($var);
for($i = 0, $size = sizeof($var); $i < $size; $i++) {
    $var[$i] = "foo";
}
var_dump($var);

返回:

array(5) { [2]=> string(3) "foo" [4]=> string(7) "value_2" [6]=> string(7) "value_3" [0]=> string(3) "foo" [1]=> string(3) "foo" }

我将非常感谢有关如何使其发挥作用的任何其他想法/答案!

1 个答案:

答案 0 :(得分:2)

使用array_values()(返回“已排序”数组):

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3");
$var = array_values($var);
for($i = 0, $size = sizeof($var); $i < $size; $i++) {
    $var[$i] = "foo";
}
var_dump($var);