Php 如何从存储在变量中的jsondecode()响应中搜索和获取值?

Php 如何从存储在变量中的jsondecode()响应中搜索和获取值?,php,arrays,json,jsondecoder,Php,Arrays,Json,Jsondecoder,我有以下JSON响应https://mysite/info: { "wg0": { "privateKey": "[hidden]", "publicKey": "XXXXXXXXXXXXXXXXXXX", "listenPort": 0, "peers": { "B3GtLuabWguXoG2Tz8KVukPX

我有以下JSON响应https://mysite/info:

{
 "wg0": {
   "privateKey": "[hidden]",
   "publicKey": "XXXXXXXXXXXXXXXXXXX",
   "listenPort": 0,
   "peers": {
     "B3GtLuabWguXoG2Tz8KVukPXx3twn7A+X/SVT8=": {
       "endpoint": "0.0.0.0:5377",
       "latestHandshake": "Oct 28, 2020 1:58:32 UTC",
       "transferRx": "2.432 GB",
       "transferTx": "1.098 GB",
       "allowedIps": [
         "10.85.85.2/32"
       ]
     },
     "2Uqo3X2ubogU92LS4mWsZtF04ah3qJ4gt1g0=": {
       "endpoint": "0.0.0.0:5412",
       "latestHandshake": "Oct 28, 2020 1:58:52 UTC",
       "transferRx": "32.239 MB",
       "transferTx": "220.852 MB",
       "allowedIps": [
         "10.85.85.3/32"
       ]
     }
   }
 }
}

我需要在PHP中搜索响应中的“allowedIps”值,并返回相应的“latestHandshake”值

例如:

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_URL, 'https://mysite/info');
$result2 = curl_exec($ch2);
curl_close($ch2);

$obj2 = json_decode($result2);

$IPtoSearch = "10.85.85.2/32";

//Now How can I search $IPtoSearch into $obj2 and return latestHandshake value?

...


谢谢你的帮助

不幸的是,返回的JSON实际上无效,因为
00000
不是有效的整数。如果您可以将
00000
转换为
0
,您的JSON将成功解码,您可以找到与您的搜索IP地址对应的
latestHandshake
值,如下所示:

$obj2 = json_decode($result2, true);
$IPtoSearch = "10.85.85.2/32";

foreach ($obj2['wg0']['peers'] as $peer) {
    if (in_array($IPtoSearch, $peer['allowedIps'])) {
        $latestHandshake = $peer['latestHandshake'];
        break;
    }
}

echo "Last handshake for $IPtoSearch was at $latestHandshake\n";
输出(用于示例数据):


确保你的帖子上始终包含一个语言标签(PHP),以确保其他用户的数量达到最大。确保你始终包含编码尝试和/或研究/工作证明,这将向志愿者保证你不仅仅是在“倾销你的需求”。我们不希望你依赖这里的志愿者“为你工作”。帮助吸血鬼是件坏事。如果您知道如何访问嵌套数组,请在代码段中演示。如果您知道如何在数组()中调用
,请显示这一点@美格
Last handshake for 10.85.85.2/32 was at Oct 28, 2020 1:58:32 UTC