2017-02-04 7 views
0

(大)配列から情報を取得するPHP Webサイトを作成しようとしています。名前付きPHPアクセス配列値

配列は次のようになります。問題は、私が「統計」の数百を持っているということです

$kills = $jsonforgame['playerstats']['stats'][0]['value']; 
$deaths = $jsonforgame['playerstats']['stats'][1]['value']; 

"playerstats": { 
     "steamID": "MyID", 
     "gameName": "ValveTestApp260", 
     "stats": [ 
      { 
       "name": "total_kills", 
       "value": 35342 
      }, 
      { 
       "name": "total_deaths", 
       "value": 30465 
      }, 
      { 
       "name": "total_time_played", 
       "value": 1952281 
      so on and so on... 

私は今それをアクセスしてるの方法を使用することです配列には、すべての配列を数えるのではなく、total_kills(& total_deathsなど)の名前ですべての値にアクセスする方法がありますか?多次元配列から統計情報を選択するには:)

答えて

2

を読み取るための

ありがとう:

$searchName = 'total_kills'; 

$stat = $jsonforgame['playerstats']['stats'][array_search($searchName, array_column($jsonforgame['playerstats']['stats'], 'name'))]; 
+0

EDITにアクセスすることができます:私は、コードの一部を追加するのを忘れ。それを追加しました。 –

0

使用array_search

$stats_array = $jsonforgame['playerstats']['stats']; 
$key = array_search('total_deaths', array_column($stats_array, 'name')); 
$deaths = $stats_array[$key]['value']; 

echo var_dump($key).PHP_EOL; 
echo var_dump($stats_array[$key]).PHP_EOL; 
echo var_dump($deaths).PHP_EOL; 
+0

EDIT:質問の配列名を使用します。 –

0

あなたはにあなたの統計の配列の構造を変更することができます配列名として配列名を使用してください:

"playerstats": { 
    "steamID": "MyID", 
    "gameName": "ValveTestApp260", 
    "stats": { 
     "total_kills": 35342, 
     "total_deaths": 30465, 
     "total_time_played": 1952281 
    } 
} 

次に、あなたは

$kills = $jsonforgame['playerstats']['stats']['total_kills']; 
+0

彼は統計をどのように構造化するか、それらにアクセスする方法だけを要求していません。 –

+0

この構造によって、アクセスが容易になります。アレイの再構成がオプションである場合、これははるかに簡単で読みやすくなります。 – tjfo

+0

これは理想的な方法ですが、配列構造に影響はありません。 – Sten

関連する問題