2011-08-22 41 views
1

我有两个阵列,$country$redirect,每个条目都与它的确切对应物相对应。 $redirect[1]$country[1]通过数组键重新排序数组?

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

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

这可能吗?

任何答案或建议将不胜感激;)!

UPDATE:

我已经尝试同时使用ksort()array_values(),但我不知道他们是真的我需要什么,我打算使用size_of()功能。

我的代码:

$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" } 

任何额外的想法/我如何能得到这个工作,答案将不胜感激!

回答

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); 
+0

+1我要建议array_values()太 –

+0

巨大的感谢,当计时器下降,我会接受你的答案)! – Avicinnian

+0

哦,是否有任何理由通过'ksort()'使用'array_values()'? – Avicinnian