2017-03-24 154 views
0

目前我坚持如何访问元素。阵列的 结构是这样的:PHP访问数组元素

{ 
"network":"BTC", 
"event_type":"address-transactions", 
"addresses":{ 
    "3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv":0 
}, 
"data":{}, 
"retry_count":0 
} 

如何获得值“3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv”。正如你可能已经猜到的那样,这是一种回调。由于支付提供程序的lib仅将回调作为数组返回,所以我对如何访问该值完全感到困惑。

当我使用:

$payload['addresses'][0] 

它说未定义的指标,使用

dd($payload['addresses']); 

回报:

array:1 [ 
"3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv" => 0 
] 

回答

2

当涉及到JSON,可以访问自己的数据作为带有json_decode阵列():http://php.net/manual/fr/function.json-decode.php

的第二参数是一个布尔值:为TRUE时,返回的对象将被转换成关联数组。

$json = '{ 
    "network":"BTC", 
"event_type":"address-transactions", 
"addresses":{ 
     "3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv":0 
}, 
"data":{ 
    }, 
"retry_count":0 
}'; 

$test = json_decode($json, true); 

然后:

foreach ($test["addresses"] as $key => $value) { 
    echo sprintf("key: %s, value %s", $key, $value); 
} 
1

PHP code demo

您可以访问一个数组值其中界定了它的一些指标,这里

3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv =>key

0 =>value

3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv是要找到问题的关键。

$string = '{ 
    "network":"BTC", 
    "event_type":"address-transactions", 
    "addresses":{ 
     "3PvGLecQQMnm8oB2EqLbV94LFh7FLZpgJv":0 
    }, 
    "data":{}, 
    "retry_count":0 
}'; 
$array = json_decode($string, true); 
echo key($array["addresses"]);