猿问

从嵌套数组中获取数据的更快或更简单的方法

我正在尝试从关联数组内的关联数组中获取数据。该数据是这样的:


{

  "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;      

    }

}

有没有更快或更标准的方法来获取这些数据?


慕桂英546537
浏览 180回答 2
2回答

qq_遁去的一_1

您可以使用array_column,以获得kid从阵列。首先,您需要将其解码JSON为一个array,然后将其用作$arr = json_decode($json, true); print_r(array_column($arr['keys'],'kid'));

Smart猫小萌

试试这个代码, $json = json_decode($certs); foreach ($json->keys as $key => $value) {       $kid= $value->kid;   }获得孩子价值的简单方法,只使用一个 foreach()。
随时随地看视频慕课网APP
我要回答