2016-07-06 5 views
1

php連想配列を逆に反復するにはどうすればよいですか? https://stackoverflow.com/a/10777617/1032531は、非関連配列の解を与える。反復PHP連想配列

私の試み:

$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

なぜarray_reverseを使用して繰り返し処理するのですか? –

+0

なぜdownvote? – user1032531

答えて

3

だけのために$a=array_reverse($a,true);の代わり$a=array_reverse($a);を使用キーを押し続ける。

array_reverse()には、保存キーの2番目のオプションのパラメータがあります。デフォルト値はfalseです。

読むdoc here

+0

パーフェクト!ありがとうございます – user1032531

+0

ようこそ! – Alexis

2

あなたは非常に接近していた - あなたはすでに、すべてのキーワードを持っていた - とちょうどPHPマニュアルはあなたの友人であることを覚えておく必要があります:)

manual page for array_reverseリストオプションの引数$preserve_keysは、どのデフォルトはfalseです。

$a=array_reverse($a);から$a=array_reverse($a, true);に変更するだけで、結果は後で取得する必要があります。