在PHP中创建JS对象,中间使用逗号

时间:2012-07-25 11:36:37

标签: php javascript

我正在尝试从PHP数组创建一个JS对象数组,但我很难找到在每个对象之间插入逗号的方法。

这是我想要输出的内容:

var things = [
    {
        a: "foo",
        b: "bar"
    },  // Comma on this line
    {
        a: "moo",
        b: "car"
    }   // No comma on this line
];

这是我到目前为止所做的:

var things = [
    <?php foreach ($things as $thing): ?>
    {
        a: "<?php echo $thing->getA(); ?>",
        b: "<?php echo $thing->getB(); ?>"
    }
    <?php endforeach; ?>
];

我想我可以诉诸丑陋的东西,比如只运行一次的if语句:

<?php
    $i = 1;
    if ($i == 1) {
        echo '{';
        $i++;
    } else {
        echo ',{';
    }
?>

有没有更清洁/更好的方法来做到这一点?

4 个答案:

答案 0 :(得分:5)

像...一样的东西。

$JSONData = json_encode($YourObject);

还有解码......

$OriginalObject = json_decode($JSONData);

答案 1 :(得分:1)

如果你有一个PHP数组,并希望在JavaScript中使用某些东西,你可以使用json_encode()

答案 2 :(得分:1)

为什么不使用json_encode

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

以上示例将输出: { “一”:1, “B”:2, “C”:3 “d”:4, “E”:5}

答案 3 :(得分:0)

以PHP Arrays的形式创建所需的结构,然后使用json_encode(http://php.net/manual/en/function.json-encode.php)。

$plainThing = array();

foreach ($things as $thing) {
    $plainThing[] = array('a' => $thing.getA(), 'b' => $thing.getB());
}

echo json_encode($plainThing);