如何删除该数组的最后一个逗号?我在这段代码中使用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
感谢您的帮助
答案 0 :(得分:2)
如果您只想查看以这种方式格式化的输出,最简单的方法是将结果存储为数组,并使用join
或implode
将其作为字符串放置在一起:
<?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
}
?>