在PHP中构建嵌套数组
因此,我试图构建一个JSON对象,其中包含嵌套在主用户数组中的数组 我在PHP中构建数据模型时遇到了一些问题。有人能给点建议吗 期望输出:在PHP中构建嵌套数组,php,mysql,json,Php,Mysql,Json,因此,我试图构建一个JSON对象,其中包含嵌套在主用户数组中的数组 我在PHP中构建数据模型时遇到了一些问题。有人能给点建议吗 期望输出: [{ id: 2, name: "John Wilson", profilePic: "fighter-1.jpg", activities: [{ id: 6431, time: (57).minu
[{
id: 2,
name: "John Wilson",
profilePic: "fighter-1.jpg",
activities: [{
id: 6431,
time: (57).minutes().ago(),
points: 20
}, {
id: 6431,
time: new Date(),
points: 20
}]
}, {
id: 3,
name: "Christoper Robin",
profilePic: "fighter-3.jpg",
activities: [{
id: 6431,
time: (1).days().ago,
points: 20
}, {
id: 6431,
time: (2).days().ago,
points: 20
}, {
id: 6431,
time: new Date(),
points: 20
}]
}, {
id: 1,
name: "Jerry Seinfeld",
profilePic: "placeholder.jpg",
activities: [{
id: 6431,
time: new Date(),
points: 20
}, {
id: 6431,
time: new Date(),
points: 20
}, {
id: 6432,
time: new Date(),
points: 100
}]
}]
PHP和MySQL:
$getCompUsers = mysql_query("SELECT c.userid, u.name, u.profilePic, a.activity_typeid, a.userid, a.time, a.activity_weight, a.activityname
FROM competitionmembers c
INNER JOIN users1 u ON u.id = c.userid
INNER JOIN activity_entries a ON a.userid = u.id
WHERE c.competitionid = '$competitionId'") or die("Couldn't select competitions users");
$compUsersArr = array();
while ($row = mysql_fetch_array($getCompUsers,MYSQL_ASSOC)){
$compUsersArr = array(
'id' => $row["userid"],
'name'=> $row["name"],
'profilePic' => $row["profilePic"],
$activities = array( //THIS SEEMS TO BE THE PROBLEM
'id' => $row["activity_typeid"],
'name' => $row["activityname"],
'points' => $row["activity_weight"]
)
);
}
制作数组的方法是错误的,要嵌套,不必像以前那样在数组中使用变量
$compUsersArr = array(
'id' => $row["userid"],
'name'=> $row["name"],
'profilePic' => $row["profilePic"],
'activities' => array(
'id' => $row["activity_typeid"],
'name' => $row["activityname"],
'points' => $row["activity_weight"]
)
);
实际上,你的代码几乎是正确的;将其拆分会让您了解为什么它没有:
$activities = array(
'id' => $row["activity_typeid"],
'name' => $row["activityname"],
'points' => $row["activity_weight"]
);
$compUsersArr = array(
'id' => $row["userid"],
'name'=> $row["name"],
'profilePic' => $row["profilePic"],
$activities,
);
这将创建一个数组,如:
[
'id' => 123,
'name' => 'foo',
'profilePic' => 'bar',
0 => ['id' => 456, 'name' => 'baz', 'points' => 'quz']
]
您可能会希望这样:
$compUsersArr = array(
'id' => $row["userid"],
'name'=> $row["name"],
'profilePic' => $row["profilePic"],
'activities' => $activities,
);
给你一些提示:除了在构建第二个数组时的小的typo=should=>之外,这很好。谢谢D