Php 同时只删除一个字符

Php 同时只删除一个字符,php,Php,如何在中只修剪中的一个字符?请参见此示例: 我想要的: [{"lat":"mylat","lng":"mylong","dragable":"false"}, {"lat":"mylat","lng":"mylong","dragable":"false"}]` 我得到了什么: [{"lat":"mylat","lng":"mylong","dragable":"false"}, {"lat":"mylat","lng":"","dragable":"false"},] 我只想删除}和]

如何在中只修剪
中的一个字符?请参见此示例:

我想要的:

[{"lat":"mylat","lng":"mylong","dragable":"false"},
 {"lat":"mylat","lng":"mylong","dragable":"false"}]`
我得到了什么:

[{"lat":"mylat","lng":"mylong","dragable":"false"},
 {"lat":"mylat","lng":"","dragable":"false"},]
我只想删除
}
]
之间的逗号,但我不知道如何删除


守则:


我尝试添加一个
rtrim($locs,“,”)在打印后,但它删除了所有逗号,我需要所有逗号,除了最后一个

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 "]";

简单的解决方案:添加一个计数器并根据计数器的值打印逗号。我会将字符串存储在变量中

添加完值后,执行
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;

看起来您正在尝试编码为JSON,部分手动,部分使用
JSON\u encode()
。您可以使用
json\u 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);

有了这个,我得到了所有的逗号,包括我想要删除的那个@nanocv@DiegoBarreiro我的错!修好了!您必须将rtrim的结果重新分配给变量Thank you@nanocv,现在它可以完美地工作了!谢谢lot@DiegoBarreiro真高兴!请考虑对这个问题进行投票和验证,我没有任何逗号,但是我想得到所有逗号,除了最后一个,你试过这个吗?是的,IMA,但是输出不是我要找的。我使用了nanocv答案,它对我有效。OK发现了一个错误!更正。变量名是错误的。不管怎样,很好,你有工作代码
$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);