发出从数组中获取信息的问题

时间:2013-04-26 01:33:42

标签: php

我正试图从这些信息中获取信息:

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'];

要把它拿出来,但它不能用于此:(感谢任何帮助。

2 个答案:

答案 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']