2012-07-25 85 views
2

我想從PHP數組中創建一個JS對象數組,但我正在努力尋找在每個對象之間插入逗號的方法。用逗號在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 ',{'; 
    } 
?> 

是否沒有更清潔/更好的方法來做到這一點?

回答

5

喜歡的東西...

$JSONData = json_encode($YourObject); 

還有一個解碼...

$OriginalObject = json_decode($JSONData); 
1

如果你有一個PHP數組,並希望在JavaScript中使用的東西,你可以使用json_encode()

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}

0

創建所需的結構作爲PHP數組,然後使用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);