我有一个php数组,我从服务器获得响应,因此我无法更改它,
print_r($array);
//结果低于
array(
'responseHeader'=>array(
'status'=>0,
'QTime'=>0,
'params'=>array(
'indent'=>'true',
'q'=>'rajnikanth',
'_'=>'1383362349068',
'wt'=>'php')),
'response'=>array('numFound'=>2,'start'=>0,'docs'=>array(
array(
'id'=>'31546690',
'title'=>'Jayan quotes',
'_version_'=>1450551735544184832),
array(
'id'=>'597727',
'title'=>'List of Internet phenomena',
'_version_'=>1450551735290429440))
))
如何访问此数组中的每个标题值?我试图使用$ array [0]但它错误地说没有设置偏移量。
答案 0 :(得分:2)
foreach ($array['response']['docs'] as $doc) {
echo $doc['title'];
}
$ array似乎是两个键的响应,即responseHeader和response。响应键包含docs键,它是一个数组数组。这些数组中的每一个似乎都有一个标题。
答案 1 :(得分:1)
那是因为这不是一个索引数组......它是一个关联数组。这意味着内容由字符串键而不是数字引用。
PHP的构造是:
foreach ($array as $key => $value) {
}
在你的情况下,这个循环会迭代两次。
第一次迭代:
$key --> "responseHeader"
$value --> an array containing the keys "status", "QTime", and "params"
第二次迭代:
$key --> "response"
$value --> an array containing the keys "numFound", "start", and "docs"
请注意,在“params”和“docs”下找到的值都是 关联数组。因此,您可以随意在第一个循环中嵌套循环。
通常,您事先会知道关联数组中的键,因此您可以使用$array['some_key']
访问它。如果不这样做,那么PHP的内置数组函数之一可能会派上用场(array_key_exists()
等)。