douke6027 2017-07-17 22:42
浏览 95
已采纳

在JSON数组中搜索匹配键

Im trying to search through a json array and find all keys that contain the word medals, ie...

  • medalsActivityCompleteHighestScoreWinning
  • medalsActivityCompleteVictoryBlowout
  • medalsKillHeadshot
  • medalsKillMulti2
  • medalsKillSpree1
  • medalsKillSpree2
  • medalsWinningScore
  • medalsWeaponPulseRifleKillSpree
  • medalsPaybackKill
  • medalsAvenger

ive tried...

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

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

    $x++;
}

this is the 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
  • 写回答

1条回答 默认 最新

  • dsfvsdfv23599 2017-07-17 22:46
    关注

    It should do the trick:

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

    Alternatively, you can use array_filter:

    var_dump(array_filter($json['Response']['data']['entries'][0]['extended']['values'], function ($k, $v) {
        return false !== strpos($k, 'medals');
    }, ARRAY_FILTER_USE_BOTH));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题