Более быстрый или простой способ получить данные из вложенного массива - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь получить данные из связанного массива внутри связанного массива. data выглядит следующим образом:

{
  "keys": [
    {
      "kid": "28f5813e327ad14caaf1bf2a12368587e882b604",
      "e": "AQAB",
      "kty": "RSA",
      "alg": "RS256",
      "n": "y-Ssr1zlqWaldUHklobfrJLZkkBYrLVKTOk9SnzkG3v2LPB-0lxLQjm8UDpdZRErn4_FfCQ6b7SAObUp2XgcD-fwmYfq34mvY-xGcvlEarcOFdVD9cwkGBdXL_VJYzqLtvuAL30mbD2TGhIp-QCV-rqb6ujh75vSmwWH1Kkx1HNkVbXHHETvX7h8kj3zmCtRdMGeQJ2YrcJHz3GnJx0M2Zpq1HiAXkYL9GUYsq9maONfsrSeACu7T0W4v-XTppsV3DwU89D_eFd8gJsONvFZPvbqyGivdXYTnYNo7Jf01IisO4JZZrNgUlVT-gPkTM1O1UXevgFY62Br8mBot6Lw6Q",
      "use": "sig"
    },
    {
      "alg": "RS256",
      "n": "timkjBhJ0F7fgr5-ySitSoSNmUqYcVKgWaUd52HUYPowNwdw1vOWYHuSVol47ssOOaF7dRjgoVHyo_qNgy7rdlU0pUidiYTB6lwSAQYyvk6WAipkpzWH8cr875BMUREyN5aEy-iKsYTB3HeT-gEnLI697eETZtSB8rwlDvyRy7l0wD1GVj4SKTd4P2a2qNCgCfkZzzKqPgmIrPtwkEZb43Cz-A7AfwyXxrMljTkghKkp4zkFRtXplIGjC5LcPZRLSseTYwHP2pV4AtE5KzYxDmtDmY6RyZaMZc_WXNvKBFcO3Rypo4F63lE2x5f7EIbpATWydXq3CMLitLsPor22ow",
      "use": "sig",
      "kid": "2c3fac16b73fc848d426d5a225ac82bc1c02aefd",
      "e": "AQAB",
      "kty": "RSA"
    }
  ]
}

Чтобы получить, например, kid, мне нужно сделать два foreach(), прежде чем я смогу получить данные:

foreach ($certs as $key => $val) {
    foreach($val AS $key2 => $val2){
        $kid = $val2->kid;      
    }
}

Есть ли более быстрый или более стандартный способ получения этих данных?

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Вы можете использовать array_column, чтобы получить kid из массива.Сначала вам нужно декодировать JSON в array, а затем использовать его как

$arr = json_decode($json, true);
print_r(array_column($arr['keys'],'kid'));

Live Demo

1 голос
/ 20 мая 2019

попробуйте этот код,

 $json = json_decode($certs);
 foreach ($json->keys as $key => $value) {
       $kid= $value->kid;
   }

простой способ получить значение ребенка, используя только один foreach ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...