如何删除SQL数组的最后一个逗号?

时间:2019-06-11 02:08:28

标签: php sql

如何删除该数组的最后一个逗号?我在这段代码中使用SQL。

<?php
$no=1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>                            
{lat: <?php echo $row['lat'] ?>, 
lng: <?php echo $row['lng'] ?>},
<?php
}
?>

我希望输出为:

{lat: -7.0476101, lng: 112.7323577}, {lat: -7.0319093, lng: 112.7614287}, {lat: -7.0433001, lng: 112.7606889}, {lat: -7.0459718, lng: 112.7583679} //last comma doesnt exist

但是结果是:

{lat: -7.0476101, lng: 112.7323577}, {lat: -7.0319093, lng: 112.7614287}, {lat: -7.0433001, lng: 112.7606889}, {lat: -7.0459718, lng: 112.7583679}, //last comma exists

感谢您的帮助

4 个答案:

答案 0 :(得分:2)

如果您只想查看以这种方式格式化的输出,最简单的方法是将结果存储为数组,并使用joinimplode将其作为字符串放置在一起:

<?php

$result = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  $result[] = sprintf("{lat:%s, lng:%s}",
              $row['lat'],
              $row['lng']
              );
}

echo join(', ',$result);
// or,
?>

<!-- if you're sticking this in a web page... ->
<?= join(', ',$result) ?>

使用json_encode更容易:

<?php
$no=1;
$result = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  $result[] = array($row['lat'] => $row['lng']);
}

print json_encode($result);

?>

答案 1 :(得分:1)

您的php应用程序中的问题不是MYSQL

尝试这个

<?php
$no=1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>                            
<?php
}
?>
lat: <?php echo $row['lat'];?> 
lng: <?php echo $row['lng'];?>

<?php
}
?>

或通过您的代码尝试这种方式

<?php
$no=1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>                            
{lat: <?php echo $row['lat'] ?>, 
lng: <?php echo $row['lng'] ?>},
<?php
}
?>
$tempRow =rtrim($row,',');

<?php
echo $tempRow; 
?>

rtrim($ row,',')函数删除最后一个','

答案 2 :(得分:1)

您也许还可以使用:

$json = json_encode($stmt->fetchAll(PDO::FETCH_OBJ));

参考:https://www.php.net/manual/en/pdostatement.fetchall.php

为帮助您了解正在发生的事情,请从以下内容开始:

var_dump($stmt->fetchAll(PDO::FETCH_OBJ));

这将向您显示 fetchAll

返回的内容

您要查看对象数组或关联数组

下次使用:

echo json_encode($stmt->fetchAll(PDO::FETCH_OBJ));

这将向您确切显示产生的东西

答案 3 :(得分:1)

<?php
$count = $stmt->rowCount();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>                            
{lat: <?php echo $row['lat'] ?>, 
<?php if( $count == $rows ) { ?>
   lng: <?php echo $row['lng'] ?>}
 <?php }else{ ?>
lng: <?php echo $row['lng'] ?>},
<?php } ?>

<?php
}
?>