foreach循环中保持数组元素的顺序


preserve order of elements in PHP array foreach loop

我有一个数组

$array = array(10 => "a", 11 => "b", 12 => "c");

,我想在foreach中循环,以便保持顺序。

但是,我的foreach循环以错误的顺序迭代元素

foreach($array as $k => $v)
print($k." ".$v." /");
// 12 c / 11 b / 10 a /

我该怎么做呢?

尝试使用 sort

$array =array(10 =>'a', 11=>'b', 12=>'c');
arsort($array);
foreach ($array as $key => $value) {
    echo $key." ".$value." /";
}

输出: 12 c /11 b /10 a /

可以使用shuffle

$array =array(10 =>'a', 11=>'b', 12=>'c');
shuffle($array);
foreach ($array as $key => $value) {
    echo $key." ".$value." /";
}

但是这个not maintains the key association

输出: 0 b /1 a /2 c /