2017-07-17 3 views
1

Im Versuch, durch ein JSON-Array zu suchen und alle Schlüssel finden, die das Wort Medaillen, dh sie enthalten ...Suche durch JSON-Array für passende Schlüssel

  • medalsActivityCompleteHighestScoreWinning
  • medalsActivityCompleteVictoryBlowout
  • medalsKillHeadshot
  • medaillenKillMulti2
  • medaillenKillSpree1
  • medalsKillSpree2
  • medalsWinningScore
  • medalsWeaponPulseRifleKillSpree
  • medalsPaybackKill
  • medalsAvenger

ive versucht ...

$x = '0'; 
foreach ($json['Response']['data']['entries']['0'] as $extended) { 
    $valueName[] = $extended['values']; 

    if (strpos($valueName[$x], 'medals') !== false) { 
     echo $valueName[$x]; 
    } 

    $x++; 
} 

dies das Array

Array 
(
[Response] => Array 

     [data] => Array 

       [period] => 2017-07-17T21:11:58Z 
       [activityDetails] => Array 
       [entries] => Array 

         [0] => Array 

           [standing] => 0 
           [score] => Array 
           [player] => Array 
           [characterId] => 2305843009334005960 
           [values] => Array 
           [extended] => Array 

             [weapons] => Array 
             [values] => Array 
                           [totalKillDistance] => Array 
               [kills] => Array 
               [averageKillDistance] => Array 
               [secondsPlayed] => Array 
               [deaths] => Array 
               [averageLifespan] => Array 
               [score] => Array 
               [averageScorePerKill] => Array 
               [averageScorePerLife] => Array              
               [killsOfPlayerWarlock] => Array 
               [medalsActivityCompleteHighestScoreWinning] => Array 
               [medalsActivityCompleteVictoryBlowout] => Array 
               [medalsKillHeadshot] => Array 
               [medalsKillMulti2] => Array 
               [medalsKillSpree1] => Array 
               [medalsKillSpree2] => Array 
               [medalsWinningScore] => Array 
               [medalsWeaponPulseRifleKillSpree] => Array 
               [medalsPaybackKill] => Array 
               [medalsAvenger] => Array 
               [allMedalsScore] => Array 
               [allMedalsEarned] => Array 
               [precisionKills] => Array 
               [weaponPrecisionKillsPulseRifle] => Array 
               [weaponKillsGrenade] => Array 
               [weaponKillsMelee] => Array 
               [weaponKillsPulseRifle] => Array 
               [weaponKillsRocketLauncher] => Array 
               [weaponKillsSuper] => Array 
               [weaponBestType] => Array 
               [weaponKillsPrecisionKillsPulseRifle] => Array 
               [allParticipantsCount] => Array 
               [allParticipantsScore] => Array 
               [allParticipantsTimePlayed] => Array 
               [fireTeamId] => Array 
               [longestKillSpree] => Array 
               [longestSingleLife] => Array 
               [orbsDropped] => Array 
               [totalActivityDurationSeconds] => Array 
               [dailyMedalsEarned] => Array 
               [combatRating] => Array 
               [sparksCaptured] => Array 
               [slamDunks] => Array 
               [dunkKills] => Array 

Antwort

3

Es sollte den Trick:

foreach ($json['Response']['data']['entries'][0]['extended']['values'] as $key => $value) { 
    if (false !== strpos($key, 'medals')) { 
     echo $value.PHP_EOL; 
    } 
} 

Alternativ Sie array_filter verwenden können:

var_dump(array_filter($json['Response']['data']['entries'][0]['extended']['values'], function ($k, $v) { 
    return false !== strpos($k, 'medals'); 
}, ARRAY_FILTER_USE_BOTH)); 
+0

Dank, funktioniert super !! – Ashley

Verwandte Themen