【发布时间】:2020-06-24 10:50:12
【问题描述】:
我正在从数据库中选择值并将这些值添加到 foreach 循环中的数组中,这可行。
在此之后,我在第二个查询中选择附加值,我想将这些值添加到同一个数组中,我该如何实现?
请注意,我现在还不关心代码的安全性。
我的(简化的)代码如下;
$users_arr = array();
// first query
$db->setQuery("SELECT id, name, username, email FROM sometable WHERE name = '$name' ");
$results = $db->loadObjectList();
foreach ($results as $result) {
$userid = $result->id;
$name = $result->name;
$username = $result->username;
$email= $result->email;
$users_arr[] = array(
"id" => $userid,
"name" => $name,
"username" => $username,
"email" => $email);
}
// second query
$db->setQuery("SELECT status AS wb_status FROM anothertable ");
$wb = $db->loadObject();
$wb_status = $wb->wb_status;
// add to original array
$users_arr[] = array("wb_status" => $wb_status);
echo json_encode($users_arr);
exit();
这会产生;
[
{
"id": "981",
"name": "jo",
"username": "jo123",
"email": "jo@example.com"
},
{
"wb_status": "Complete"
}
]
我需要这种格式的;
[
{
"id": "981",
"name": "jo",
"username": "jo123",
"email": "jo@example.com",
"wb_status": "Complete"
}
]
【问题讨论】:
-
您为实现这一目标做了哪些尝试?所有条目都应该具有相同的状态值吗?
-
我刚刚在我的问题中展示了我为实现这一目标所做的努力。如果我遗漏了什么,请告诉我?另外,我只检索一个条目,这就是为什么我想将数组合并为一个。
-
为什么不简单地将所需的数据加入到sql中呢?从给定的代码中,假设它不是简化版本,它似乎可以简化为
echo json_encode($db->loadObjectList());,只要您使用$db->setQuery("...");设置正确的查询。以下是如何编写查询的示例:SELECT T1.id, T1.name, T1.username, T1.email, T2.status AS wb_status FROM sometable T1, anothertable T2;Ref:db-fiddle.com/f/k546HWvV9RLxV21F6vUViQ/0
标签: php arrays json foreach array-push