php - 需要以下代码的格式化输出

标签 php mysql

我需要得到这样的数组输出 [[1, 26], [3, 16], [3, 17], [4, 27], [4, 26]]来自以下 php mysql 代码

    include("db.php");

$villa = $_GET['villa'];

$sql = mysql_query("SELECT unavailable_date_from, unavailable_date_to FROM villa WHERE name = '".$villa."'");
$json = "[";
    while($results = mysql_fetch_object($sql)){

        foreach ($results as $field => $value) {
            $a = explode("-", $value);

            $json = $json . '[' . $a[1] .','. $a[2] .'],';
        }

        $json = substr($json, 0, strlen($json)-1);

    }

$json = $json . ']';

echo $json;

当前代码给出以下结果:[[03,08],[03,10][03,15],[03,20]]

谁能告诉我如何在第二个和第三个数组元素之间添加一个逗号

谢谢

最佳答案

$json = substr($json, 0, strlen($json)-1); 移动到 $json = $json 之前的行中。 ']';.

它看起来像:

if ($json != '[') $json = substr($json, 0, strlen($json)-1);
$json = $json . ']';

有点乱,但它会起作用。编辑:使用 rtrim 会更好:

$json = rtrim($json, ',');
$json = $json . ']';

完整代码如下:

$json = '';
while($results = mysql_fetch_object($sql)) {
    foreach ($results as $field => $value) {
        $a = explode("-", $value);
        $json .= '[' . $a[1] .','. $a[2] .'],';
    }
}

$json = '[' . rtrim($json,','). ']';

关于php - 需要以下代码的格式化输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455795/

相关文章:

php - 如何让二十七岁的帖子和首页使用两个不同的标题图片

c# - 更新表格

php - 使用 mPDF 将 php 文件转换为 pdf 文件

php - 用PHP从出生日期计算年龄

javascript - 解码多维数组并插入到mysql中

mysql - 无法在 mysql-workbench 中添加外键约束

java - 将 MySql Dump 转换为 h2db 文件

mysql - 我如何优化以下 mysql 查询?

php - Laravel Eloquent - 多对一关系

php - 正确的 PHP 代码? - 插入到 MySQL