删除只有一个字符,而
问题描述:
我如何修剪while
内只有一个字符?看到这个例子:删除只有一个字符,而
我想什么:
[{"lat":"mylat","lng":"mylong","dragable":"false"}, {"lat":"mylat","lng":"mylong","dragable":"false"}]`
我得到什么:
[{"lat":"mylat","lng":"mylong","dragable":"false"}, {"lat":"mylat","lng":"","dragable":"false"},]
我想删除只是逗号即介于}
和]
之间,但我不知道如何。
代码:
print "[";
if ($result=mysqli_query($conn,$sql)) {
while ($row=mysqli_fetch_row($result)) {
$locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]);
$locs = $locs_json.",";
print $locs;
}
mysqli_free_result($result);
}
print "]";
我试着打印后加入rtrim($locs, ",");
,但它移除所有的逗号,我需要所有的人除了最后一个。
答
的值的计数器和打印逗号我将尽其存储在一个变量的字符串。
当您完成添加值时,您执行rtrim
,然后添加方括号并打印它。
$myString = "[";
if ($result=mysqli_query($conn,$sql)) {
while ($row=mysqli_fetch_row($result)) {
$locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]);
$locs = $locs_json.",";
$myString .= $locs;
}
mysqli_free_result($result);
$myString = rtrim($myString, ",");
}
$myString .= "]";
print $myString;
答
print "[";
if ($result=mysqli_query($conn,$sql)) {
$i = 1;
while ($row=mysqli_fetch_row($result)) {
$locs_json = sprintf(json_encode(array("lat"=>"%s", "lng"=>"%s", "dragable"=>"false")),$row[0],$row[1]);
echo ($i >1 && !empty($locs_json)) ? ',' : '';
print $locs_json;
$i++;
}
mysqli_free_result($result);
}
print "]";
简单的解决方案:将根据柜台
答
它看起来像你试图编码成JSON,手动部分和部分使用json_encode()
。你可以得到json_encode()
做所有的工作:
$rows = [];
if ($result = mysqli_query($conn, $sql)) {
while ($row = mysqli_fetch_row($result)) {
$rows[] = [
'lat' => $row[0],
'lng' => $row[1],
'dragable' => 'false',
];
}
mysqli_free_result($result);
}
echo json_encode($rows);
+0
谢谢,这个作品太@ghatzhat –
有了这个,我得到了所有的逗号,包括我想要删除的逗号@nanocv –
@DiegoBarreiro我的错!修复!你必须重新分配rtrim的结果给变量 – nanocv
谢谢@nanocv,现在它完美的工作!非常感谢 –