从带有json输出的echo字符串中删除php中的最后一个逗号


removing last comma in php from an echo string with json output

我需要一个示例格式的json输出:

  [  { "date": "2013-04-01 17:30:00", "type": "meeting", "title": "Test Last Year",    "description": "Lorem Ipsum dolor set", "url": "http://test.com?id=1" },  { "date": "2013-04-02 17:30:00",    "type": "meeting", "title": "Test Last Year", "description": "Lorem Ipsum dolor set", "url":   "http://test.com?id=2" }   }]

最后一个逗号需要去掉:"http://test.com?id=2"},}]创建一个没有错误的json-output。我正在使用php,这里是我的php代码的相关部分:(略有更改,仅显示相关部分)

echo '[';
foreach ($enquirydates as $edate) 
{
 if ($x <= $firstunixdate )//first follow-up
 {
  echo '  { "date": "'; echo date("Y-m-d ", $firstunixdate); echo '", "type": "Follow-up", "title": "Student Enquiry ';  echo ' Follow-up (First Follow-Up)", "description": "First Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '" },';
 }
elseif ($x <= $secondunixdate)//second followup
{
 echo '  { "date": "'; echo date("Y-m-d ",$secondunixdate); echo '", "type": "Follow-up", "title": "Student Enquiry ';  echo ' Follow-up (Second Follow-Up)", "description": "Second Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '"},';
 }
elseif ($x > $finalunixdate)//enquiry open for more than 25 days
{
 echo '  { "date": "'; echo date("Y-m-d ",$x); echo '", "type": "Follow-up", "title": "Student Enquiry ';  echo ' open for more than 25 days", "description": "Second Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '"},';
}//end if
}  
echo ']';

我需要删除foreach循环中的最后一个逗号。我知道内爆可以用来删除php中的结束字符串。但我不知道如何在这种情况下使用它(多个回声语句)

正在请求帮助。。

这不是生成JSON的方法。

创建一个数组,并使用json_encode()函数将其转换为json字符串。

但如果你坚持按照自己的方式来做:

$json = Array();
foreach($enquirydates as $edate) {
    if($x <= $firstunixdate) { //first follow-up
        $json[] = '{"date":"'.date("Y-m-d", $firstunixdate).'","type":"Follow-up","title":"Student Enquiry Follow-up (First Follow-Up)","description":"First Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
    }
    else if($x <= $secondunixdate) { //second followup
        $json[] = '{"date":"'.date("Y-m-d",$secondunixdate).'","type":"Follow-up","title":"Student Enquiry Follow-up (Second Follow-Up)","description":"Second Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
    }
    else if($x > $finalunixdate) { //enquiry open for more than 25 days
        $json[] = '{"date":"'.date("Y-m-d",$x).'","type":"Follow-up","title":"Student Enquiry open for more than 25 days","description":"Second Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
    } //end if
}  
echo '['.implode(',', $json).']';

与其手动构建JSON,不如先构建一个数组,并使用$JSON=JSON_encode($array)来获取有效的JSON字符串。