使用PHP中的JSON / RPC API处理多维数组

时间:2011-08-21 21:13:38

标签: php api multidimensional-array

我正在使用RPC风格的一些基于JSON的API,并且在通过一些PHP包装器与API交互后,我得到了这个多维数组:

Array
  (
  [ok] => 1
  [taskgroup] => Array
      (
        [task_1] => Array
            (
                [id] => task_1
                [name] => Task 1
                [url] => /tasks/1/
                [description] => Lorem ipsum dolor sit amet...
                [img] => http://example.net/mypic1442421.png
                [related_tasks] => Array
                    (
                        [0] => task_18
                    )
            )

        [task_2] => Array
            (
                [id] => task_2
                [name] => Task 2
                [url] => /tasks/2/
                [description] => Lorem ipsum dolor sit amet...
                [img] => http://example.net/mypic1442421.png
                [related_tasks] => Array
                    (
                        [0] => task_9
                        [1] => task_23
                    )
            )
     )
)

我的问题是,如何通过这个多维数组?这种md阵列响应有一些相关的方法吗?更具体地说 - 采取一些可以为这件事带来光明的例子 - 我如何打印所有图像的列表和像taskArray[][task_n][img] - taskArray[][task_n][url]这样的网址? --task_n可以是任何非连续的字母数字值

我尝试了一些我在这里找到的递归方法,但没有运气,请原谅我再问一遍同样的事情。原谅n00bness。

1 个答案:

答案 0 :(得分:0)

通常,该数组将使用以下代码进行处理:

if (!empty($apiResult['OK']) && !empty($apiResult['taskgroup'])) {
    foreach ($apiResult['taskGroup'] as $taskId => $task) {
        $id = $task['id'];
        $img = $task['img'];
        $url = $task['url'];
        printf("Image: %s, URL: %s\n", $img, $url);
        // do some stuff
    }
}