【发布时间】:2015-02-27 11:16:14
【问题描述】:
[{
"SchoolId": "015-08-0034-009-37",
"SubjectId": "08-0034-00613",
"StudentId": "T-15981",
"StudentName": "John"
},{
"SchoolId": "015-08-0034-009-37",
"SubjectId": "08-0034-00613",
"StudentId": "T-15982",
"StudentName": "Paul"
}]
这是我的 php 页面的 json_encode 响应,当我回显时,如果看起来像这样
Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613
Studentid=T-15981
Studentname=John
Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613
Studentid=T-15982
Studentname=Paul
我可以通过这样做得到这个结果
for (var i = 0; i < data.length; i++) {
console.log(data[i].schoolid);
console.log(data[i].subjectid);
console.log(data[i].studentid);
console.log(data[i].studentname);
}
我怎样才能使同一条目的值只生成一次,就像 school id 和 subject id 的值将只显示一次像 student id 和 student name 这样的唯一值将显示两次,因为它有两个不同的值。
我希望得到结果
Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613
Studentid=T-15981
Studentname=John
Studentid=T-15982
Studentname=Paul
在传递 json_encode 之前,我应该在 php 中的哪里修复这个问题,或者在从 php 接收到 json_encode 之后在 ajax 中进行修复?
if ($stmt - > rowCount() > 0) {
while ($selected_row = $stmt - > fetch(PDO::FETCH_ASSOC)) {
$basicinfo[] = array('schoolid' => $selected_row['schoolid'], 'subjectid' => $selected_row['subjectid'], 'studentid' => $selected_row['studentid'], 'studentname' => $selected_row['studentname']);
//$basicinfo1[] = array('schoolid' => $selected_row['schoolid'], 'subjectid' => $selected_row['subjectid']);
//$basicinfo2[] = array('studentid' => $selected_row['studentid'], 'studentname' => $selected_row['studentname']);
}
//$merge = array_merge($basicinfo1 , $basicinfo2);
//$add = $basicinfo1 + $basicinfo2)
//$input = array_map("unserialize", array_unique(array_map("serialize", $merge)));
$input = array_map("unserialize", array_unique(array_map("serialize", $basicinfo)));
echo json_encode($input, JSON_UNESCAPED_UNICODE);
}
【问题讨论】:
-
如果您除了显示值之外没有做任何事情,那么最好在 PHP 中进行更改
-
@Lepanto 我将该值放入输入框中,所以是的,只是显示如何?我试过
merge array和+ array但我没有得到正确的回应 -
我留下了我尝试过的评论..
-
我知道你的意思,你想对你的数据进行排序。那么你应该修复你的php。我不知道是否有任何 php 脚本可以做到这一点。这个想法有一些问题。您应该告诉脚本您希望如何连接数据,因为您可能会连接错误的数据。其他人如何做到这一点?好吧,我认为他们通常会使用更多查询来构建数据。
-
@luka 所以没有其他选择,只能在查询中进行修复..感谢您的想法
标签: php jquery mysql ajax json