0

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

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

把它弄出来,但它不能用这个:(任何帮助表示赞赏。

4

2 回答 2

1

重新格式化您粘贴的数组后,很明显有些元素嵌套了好几层。(这是一个“多维数组”;请参阅文档中的示例 #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'];
}
于 2013-04-26T21:05:49.053 回答
0

要查看您的问题是什么,print_r()您可以添加error_reporting(E_ALL);到代码的顶部。

请注意,如果您想检索诸如“totalresults”之类的键的值,那么$results['totalresults']就足够了。

但是,如果您想从其中一个嵌套数组中获取密钥,email则必须使用$results['result']['tickets']['ticket'][0]['email'].

于 2013-04-26T01:44:27.223 回答