Создание объектов JS в PHP с запятыми между ними

Я пытаюсь создать массив объектов JS из массива PHP, но я изо всех сил пытаюсь найти способ вставки запятых между каждым объектом.

Вот что я пытаюсь вывести:

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 ',{'; } ?> 

Разве нет более чистого / лучшего способа сделать это?

Что-то вроде…

 $JSONData = json_encode($YourObject); 

Существует также декодирование …

 $OriginalObject = json_decode($JSONData); 

Если у вас есть массив PHP и вы хотите что-то использовать в JavaScript, вы можете использовать json_encode()

Почему вы не используете json_encode ?

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

Вышеприведенный пример выводит: {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}

Создайте требуемую структуру в виде массивов 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);