Значение echo c с указанием идентификатора c в неизвестных строках (foreach l oop) - PullRequest
0 голосов
/ 18 марта 2020

У меня новый вопрос для нового проекта. На данный момент я создаю новый веб-сайт, который отслеживает статистику игровых персонажей в WoW, поэтому я работал с API Blizzard и запрашивал информацию из json -файла. Проблема, с которой я столкнулся на данный момент: мне нужно получить значение c из этого JSON -File . Мне нужно значение «количество» с идентификатором 370, который находится в переменной номер строки. Для этого я работаю с foreach l oop следующим образом:

        foreach($decodearena3['statistics'][8]['sub_categories'][0]['statistics'] as $arenastats) {
        if ($arenastats['id'] == "370") {
        echo $arenastats['quantity'];
          }

Проблема в том, что строка [8] является переменной, поэтому она также может быть любым числом, зависящим от опыта работы с персонажами. В этой строке находится идентификатор (21), поэтому я думаю, что я должен сделать foreach, чтобы найти этот идентификатор, а затем, наконец, строку. После этого, я думаю, мне нужно создать новый foreach, чтобы затем найти идентификатор 370 в другом неизвестном ряду, верно?

Надеюсь, вы понимаете, о чем я, потому что мои навыки английского языка sh не самые лучшие , Может быть, Скриншот объясняет это лучше:).

Скриншот, который объясняет, что я ищу:

изображение

1 Ответ

0 голосов
/ 18 марта 2020

Этот комментарий от @El_Vanja помог мне найти решение: когда вы используете foreach ($ что-то как $ value), тогда в пределах l oop вы работаете с $ value. Таким образом, вложенный foreach должен ссылаться на это: foreach ($ value как $ what). Следующий работает с $ что угодно и так далее. Кроме того, никогда не называйте ваши индивидуальные значения (часть после as) так же, как исходную переменную, с которой вы работаете, как вы делали здесь: foreach ($ pvpid ['statistics'] как $ pvpid). В конце l oop ваш исходный $ pvpid будет перезаписан последним значением из l oop. - El_Vanja

        foreach($decodearena3['statistics'] as $staticsid) {
            if ($staticsid['id'] == "21") {
                foreach($staticsid['sub_categories'][0]['statistics'] as $ratedarenaid) {
                    if ($ratedarenaid['id'] == "370") {
                        echo $ratedarenaid['quantity'];
             }
            }
           } 
          }

Спасибо!

...