我正试图从这些信息中获取信息:
Array (
[result] => success
[totalresults] => 1
[startnumber] => 0
[numreturned] => 1
[tickets] => Array (
[ticket] => Array (
[0] => Array (
[id] => 7
[tid] => 782755
[deptid] => 1
[userid] => 39
[name] => Mark Lønquist
[email] => mark.loenquist@outlook.com
[cc] =>
[c] => 79rzVBeJ
[date] => 2013-04-25 16:14:24
[subject] => test
[status] => Open
[priority] => Medium
[admin] =>
[attachment] =>
[lastreply] => 2013-04-25 16:14:24
[flag] => 0
[service] =>
)
)
)
)
结果使用以下方式打印:
print_r($results);
通常,我已经能够做到这一点:
$var = $results['something'];
要把它拿出来,但它不能用于此:(感谢任何帮助。
答案 0 :(得分:1)
重新格式化您粘贴的数组后,很明显某些元素嵌套了几层深度。 (它是"多维数组";请参阅文档中的example #6。)在这些情况下,您必须添加包含每个连续键的其他括号以达到所需的深度。例如,$results
数组中的示例:
Array (
[result] => success
[totalresults] => 1
...
[tickets] => Array (
[ticket] => Array (
[0] => Array (
[id] => 7
[tid] => 782755
...
)
)
)
)
您只需要$results['totalresults']
访问" totalresults",但要获得" tid"你需要使用$results['tickets']['ticket'][0]['tid']
。
如果你想得到" tid"当有多个票时,你将不得不对票数组进行迭代(循环)。可能是这样的(未经测试,但应该足够接近让你弄清楚):
foreach ($results['tickets']['ticket'] as $ticket) {
echo $ticket['tid'];
}
答案 1 :(得分:0)
要查看print_r()
的问题,您可以在代码顶部添加error_reporting(E_ALL);
。
请注意,如果您想检索某个键的值,例如“totalresults”,那么$results['totalresults']
就足够了。
但是,如果您想从其中一个嵌套数组中获取密钥,例如email
,则必须使用$results['result']['tickets']['ticket'][0]['email']
。