簡體   English   中英

迭代反向遍歷php關聯數組

[英]iterate reverse over php associative array

如何反向遍歷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

只需使用$a=array_reverse($a,true); 而不是$a=array_reverse($a); 保持鑰匙。

array_reverse()具有用於保留鍵的第二個可選參數。 默認值為false。

在這里閱讀文件

您非常親密-您已經掌握了所有關鍵字-只需記住PHP手冊是您的朋友:)

array_reverse手冊頁列出了可選參數$preserve_keys ,默認為false。

因此,您只需要更改$a=array_reverse($a); $a=array_reverse($a, true); ,那么您應該得到想要的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM