如何通过php关联数组反向迭代? https://stackoverflow.com/a/10777617/1032531为非关联数组提供解决方案。
我的尝试:
$a=['5'=>'five','3'=>'three','7'=>'seven'];
var_dump($a);
foreach($a as $k=>$v){echo("$k $v\n");}
$a=array_reverse($a);
var_dump($a);
foreach($a as $k=>$v){echo("$k $v\n");}
产生以下结果:
array(3) {
[5]=>
string(4) "five"
[3]=>
string(5) "three"
[7]=>
string(5) "seven"
}
5 five
3 three
7 seven
array(3) {
[0]=>
string(5) "seven"
[1]=>
string(5) "three"
[2]=>
string(4) "five"
}
0 seven
1 three
2 five
我希望保留密钥,然后返回:
array(3) {
[5]=>
string(4) "five"
[3]=>
string(5) "three"
[7]=>
string(5) "seven"
}
5 five
3 three
7 seven
array(3) {
[7]=>
string(5) "seven"
[3]=>
string(5) "three"
[5]=>
string(4) "five"
}
7 seven
3 three
5 five
答案 0 :(得分:4)
只需使用$a=array_reverse($a,true);
代替$a=array_reverse($a);
即可获得密钥。
array_reverse()
有保留键的第二个可选参数。默认值为false。
阅读doc here
答案 1 :(得分:2)
你非常接近 - 你已经掌握了所有关键词 - 只需要记住PHP手册是你的朋友:)
manual page for array_reverse
列出了一个可选参数$preserve_keys
,默认为false。
因此,您只需将$a=array_reverse($a);
更改为$a=array_reverse($a, true);
即可获得您所追求的结果。