哪种数据结构更好


Which kind of data structure is better?

我正在为我的网站创建一个API。API将被其他开发者或Android应用程序使用。我有两种数据结构:

一个:

$iterator = 0;
while (($end = $sth->fetch()) && $iterator < 2)
{
    $api_arr["data"][] =  array(
        "id"      =>  $end["id"],
        "title"   =>  $end["title"],
        "content" =>  $end["content"] );   
$iterator ++;
}

/* Output: ------------ print_r($api_arr); -------------------
Array
(
   [data] => Array
      (
        [0] =>
          (
            [id]      => value_id_1
            [title]   => value_title_1
            [content] => value_content_1
          )
        [1] =>
          (
            [id]      => value_id_2
            [title]   => value_title_2
            [content] => value_content_2
          )
      )
) */

/* Output: ------------ echo json_encode($data); -------------------
             ----- and using JSONveiw extension on chrome -----
{
   - data: {
       - 0: {
           id: "value_id_1",
           title: "value_title_1",
           content: "value_content_1"
         },
       - 1: {
           id: "value_id_2",
           title: "value_title_2",
           content: "value_content_2"
         },
    }
} */

两个:

$iterator = 0;
while (($end = $sth->fetch()) && $iterator < 2)
{
    $api_arr["data"]['id'][]       =  $end["id"];
    $api_arr["data"]['title'][]    =  $end["title"];
    $api_arr["data"]['content'][]  =  $end["content"];
$iterator ++;
}

/* Output: ------------ print_r($api_arr); -------------------
Array
(
  [data] =>
     (
        [id] => Array
           (
               [0] => value_id_1
               [1] => value_id_2
               [2] => value_id_3
           ),
        [title] => Array
           (
               [0] => value_title_1
               [1] => value_title_2
               [2] => value_title_3
           ),
        [content] => Array
           (
               [0] => value_content_1
               [1] => value_content_2
               [2] => value_content_3
           )
      )
) */
/* Output: ------------ echo json_encode($data); -------------------
             ----- and using JSONveiw extension on chrome -----
{
   - data: {
        - id:[
               "value_id_1",
               "value_id_2",
               "value_id_3
             ],
        - title:[
               "value_title_1,
               "value_title_2,
               "value_title_3,
             ],
        - content:[
               "value_content_1",
               "value_content_2",
               "value_content_3
             ],
     }
} */

那么,哪种数据结构更适合在客户端使用呢(其他网站,移动应用程序)

在第一个例子中,你模拟了一个数组的使用,而没有实际使用数组(或者至少在给定输出的情况下看起来是这样),在第二个例子中你重复信息,并迫使开发人员将所有信息放在一起。最好的解决方案是:

{
    data: [
        {
            id: "",
            title: "",
            content: ""
        },
        {
            id: "",
            title: "",
            content: ""
        }
    ]
}

我认为这与你的第一个选项非常相似,但看起来插件的显示方式很糟糕。

Android开发人员喜欢这样做的主要原因是,可以使用一些库直接转换对象和json。