PHP JSON foreach麻烦

时间:2013-09-01 11:23:51

标签: php json foreach

我用这个php代码创建一个json结构:

<?php
    include "../base.php";

            $STH = $DBH->prepare("SELECT * FROM customers");
            $STH->execute();

            $result = $STH->fetchall(PDO::FETCH_ASSOC);
            $rows = $STH->rowCount();

            $jsontext = "{";
            $jsontext .= "total: ".$rows.",";
            $jsontext .= "page: 0,";
            $jsontext .= "records: [";

            foreach($result as $key => $inner_arr) {
                $jsontext .= "{";
                foreach($inner_arr as $field_name => $field_value) {
                    $jsontext .= "{$field_name}: {$field_value}, ";
                }
                $jsontext .= "},";
            }

            $jsontext .= "]";
            $jsontext .= "}";
    echo json_encode($jsontext);
?>

主要问题是这一行$jsontext .= "{$field_name}: {$field_value}, ";

当我使用“echo”打印整个脚本时,它可以工作。但是$jsontext .=它不起作用,我只收到“ null ”。

4 个答案:

答案 0 :(得分:0)

尝试使用功能

中内置的json_encode

json_encode

答案 1 :(得分:0)

感谢@Satya和@keune。

更改

的最后一行
echo json_encode($jsontext);

echo $jsontext;

解决了这个问题。

答案 2 :(得分:0)

尝试:     

            $STH = $DBH->prepare("SELECT * FROM customers");
            $STH->execute();

            $result = $STH->fetchall(PDO::FETCH_ASSOC);
            $rows = $STH->rowCount();

            $jsontext['total'] = $rows;
            $jsontext['page'] = 0;

            foreach($result as $key => $inner_arr) {
                foreach($inner_arr as $field_name => $field_value) {
                    $jsontext['records'][][$field_name] = $field_value;
                }
            }
    echo json_encode($jsontext);
?>

页。秒。我没有测试过它。

答案 3 :(得分:0)

替换

json_encode($jsontext);

echo $jsontext;