2017-05-16 18 views
-1

値が5または21のキー "platform"を含むAPIから、以下の8つの連想配列があります。私のスクリプトで 異なる配列から同じ名前と値を持つ重複キーを削除する

Array ([0] => Array ([category] => 0 [platform] => 5 [date] => 1163894400000 [region] => 2 [human] => 2006-Nov-19 [y] => 2006 [m] => 11) [1] => Array ([category] => 0 [platform] => 5 [date] => 1165017600000 [region] => 5 [human] => 2006-Dec-02 [y] => 2006 [m] => 12) [2] => Array ([category] => 0 [platform] => 5 [date] => 1165449600000 [region] => 3 [human] => 2006-Dec-07 [y] => 2006 [m] => 12) [3] => Array ([category] => 0 [platform] => 5 [date] => 1165536000000 [region] => 1 [human] => 2006-Dec-08 [y] => 2006 [m] => 12) [4] => Array ([category] => 0 [platform] => 21 [date] => 1165017600000 [region] => 5 [human] => 2006-Dec-02 [y] => 2006 [m] => 12) [5] => Array ([category] => 0 [platform] => 21 [date] => 1165795200000 [region] => 2 [human] => 2006-Dec-11 [y] => 2006 [m] => 12) [6] => Array ([category] => 0 [platform] => 21 [date] => 1166140800000 [region] => 1 [human] => 2006-Dec-15 [y] => 2006 [m] => 12) [7] => Array ([category] => 0 [platform] => 21 [date] => 1166486400000 [region] => 3 [human] => 2006-Dec-19 [y] => 2006 [m] => 12)) 

は、私は(この場合は「Wiiの」、代わりに5と21の「ゲームキューブ」)私のウェブサイト上で、実際のプラットフォームではなく、プラットフォームのIDを表示するには、foreachループを使用しています。しかし、キー「プラットフォーム」は8回(4回は「5」の値、4回は「21」)含まれているので、エコーを行うと重複してしまいます。以下を参照してください:

マイコード:

foreach($game_platform_arrays as $key => $innerArray){ 
    foreach($innerArray as $innerKey => $game_platform){ 
     if ($innerKey == "platform" and $game_platform == "5"){ 
      $game_platform = "Wii"; 
      echo $game_platform; 
     } 
     if ($innerKey == "platform" and $game_platform == "21"){ 
      $game_platform = "Nintendo GameCube"; 
      echo $game_platform; 
     } 
    } 
} 

マイ出力:私は出力から重複を削除するために何をすべきか分からない

WiiWiiWiiWiiNintendo GameCubeNintendo GameCubeNintendo GameCubeNintendo GameCube 

。私の最高の推測では、同じ名前と値を持つ重複するキーを配列から削除することですが、どのように処理するのかは分かりません。誰かが私を正しい方向に向けることができれば、これは高く評価されます。ここで

+4

は 'array_unique' http://php.net/manual/en/function.array-unique.php – ThisGuyHasTwoThumbs

+0

@Adrienを見て、あなたの質問に答えるにはどうすればいいですか? –

+0

@ThisGuyHasTwoThumbsありがとう!私はすでに見ましたが、複製が異なる配列からのものである場合、これは機能しません。 – Adrien

答えて

0

は、あなたがこれを行うことができる方法のための例です:

<?php 
$game_platform_arrays = [ 
0 => [ 
    'platform' => 5, 
    ], 
1 => [ 
    'platform' => 5 
], 
2 => [ 
    'platform' => 21 
    ], 
3 => [ 
    'platform' => 21 
    ] 
]; 
$name = ''; 
foreach($game_platform_arrays as $key => $innerArray){ 
    foreach($innerArray as $innerKey => $game_platform){ 
    if ($innerKey == 'platform' && $game_platform == '5' && $name != 'Wii'){ 
     echo $name = 'Wii'; 
    } 
    if ($innerKey == 'platform' && $game_platform == '21' && $name != 'Nintendo GameCube'){ 
     echo $name = 'Nintendo GameCube'; 
    } 
    } 
} 
?> 
+0

あなたの答えをありがとう!配列はAPIのjsonデータに基づいて作成されるので、プラットフォームが要求を行うたびに変更されるため、これは私にとってはうまくいかないと思います。もし私が何かを欠けているなら、私に知らせてください。 – Adrien

+0

あなたの質問では、それは5か21のいずれかになると言いました - あなたのコードと同じです。問題は何ですか? – junkfoodjunkie

+0

私が言ったことを心配しないでください、答えに感謝します:) – Adrien

関連する問題