使用嵌套查询创建 JSON 对象


Creat JSON object using nested queries

我想在PHP中使用tow查询创建JSON对象,然后使用ajax检索此对象。 其中第一个将返回所有用户。 第二个嵌套查询将返回与特定用户关联的所有任务。结构必须像这样:

{
[
user1 : { "name" : "name1"
          "task" : [ { "taskname":"taskname1.1" , "date":"1-1" } ,
                 { "taskname":"taskname1.2" , "date":"1-1"  }
        }
} ,
user2: { "name" : "name2"
      "task" : [ { "taskname":"taskname2.1" , "date":"2-2" } ,
                 { "taskname":"taskname2.2" , "date":"2-2"  }
               ]
  }
...
]
}

我的问题是:

当我尝试解析每个用户的任务时,我发现:

每个用户的任务将与上一个用户的任务合并。

那么使用 php 创建与我的结构相同的 JSON 对象的最佳方法是什么?

---更新---

感谢所有回答我的人.但是我需要知道如何动态创建这个,我知道如何在静态中执行此操作,并且我之前正确使用了json_encode(),这不是我的问题。我真的很感激你的回答,但这不是我需要的,我认为问题出在我的问题中。

$array=array(
    'user1'=>array(
                      'tasks'=>array(
                               'task1'=>'whatever',
                               'task2'=>'whatever',
                               'task3'=>'whatever'
                               ),
                      'date'=>'whatever'
                  ),
    'user2'=>array(
                      'tasks'=>array(
                               'task1'=>'whatever',
                               'task2'=>'whatever',
                               'task3'=>'whatever'
                               ),
                      'date'=>'whatever'
                  ),
    'user3'=>array(
                      'tasks'=>array(
                               'task1'=>'whatever',
                               'task2'=>'whatever',
                               'task3'=>'whatever'
                               ),
                      'date'=>'whatever'
                  )    
);

然后使用 JSON 编码发送 JSON 字符串。

echo json_encode($array);

我同意强力浮标,只需在 php 中创建一个带有键值对的数组:

$obj = array( 
             "User 1" => array( 
                 "name" => "name1", 
                 "tasks" => array(
                     array("taskname" => "t1", "date" => "1-1"),
                     array("taskname" => "t2", "date" => "1-1")
                 )
             ),
             "User 2" => array(...........)

然后运行json_encode($obj);

我认为这样的东西应该对你有用