微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP while循环修改最后一次迭代

我试图从PHP生成一个JSON文件.到目前为止,我有以下输出

"students":[
    {"name": "John"},
    {"name": "Alex"},
    {"name": "Siri"},
]

每个学生都有一个逗号,当我明显要删除最后一个逗号.通常我会用if语句执行while循环.但是,我的数据库结构使这种情况不同.

我的PHP代码如下所示:

    while ($getschools = $schools->fetch_assoc()){
        $findschools = $dbcon->query("SELECT * 
            FROM school_".$getstate['texas']."
            WHERE students = '".$studentGPA['best']."'");       
        while ($beststudents = $findschools->fetch_assoc()){
            $jsonfield.= '{"name":"'.$getstudent['firstname'].'"},';
        }
    } 

代码可能有一些缺失部分,但希望上下文清晰.我使用以前的提取请求中的PHP变量来从多个表中获取数据.

在我的例子中,有多个表对应于德克萨斯州的学校.我得到了来自这多所学校(或桌子)的每个学生的名字.我试图将此信息应用于JSON输出.

$jsonfield行显示了我的代码的循环部分.我试图弄清楚如何在我的示例中实现这样的代码

$i = 0;
$countstudents = $getschools->num_rows;
if ($i < $countstudents){
$jsonfield.=',';
} 

这样我的逗号只应用于我的数据部分,而不是我循环的最后一次迭代.

解决方法:

请不要手动制作JSON.尝试这样的事情:

$students = [];

// This would happen in your loop.    
$students[] = array("name" => "John");
$students[] = array("name" => "Alex");
$students[] = array("name" => "Siri");

// Feel free to drop the JSON_PRETTY_PRINT.
echo json_encode(array("students" => $students), JSON_PRETTY_PRINT) . "\n";

// Output:
// {
//     "students": [
//         {
//             "name": "John"
//         },
//         {
//             "name": "Alex"
//         },
//         {
//             "name": "Siri"
//         }
//     ]
// }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐