2013-04-09 3 views
0

Это должен быть лучший способ сделать это? Я хочу получить все документы из коллекции звуков и вывести их с массивом с объектами (используя его для backbone.js). Это не может быть объект с объектами!от mongodb до массива с объектами

$sounds = iterator_to_array($db->sounds->find()); 

    $a = "["; 

    foreach ($sounds as $id => $sound) { 
     $a .= json_encode($sound) . ","; 
    } 

    //remove the last comma... 
    $a = substr($a, 0, -1); 
    $a .="]"; 

    echo $a; 
+0

Как насчет 'echo json_encode (array_values ​​($ sounds));'? – Leri

+0

да! это отлично работает! не могли бы вы объяснить, что он делает? – tobbe

+0

Я отправлю его как ответ с объяснением. – Leri

ответ

1

Вы можете попробовать:

$sounds = iterator_to_array($db->sounds->find()); 
echo json_encode(array_values($sounds)); 

array_values будет возвращать значения ассоциативного массива в индексном массиве так json_encode будет возвращать JSON закодированной строку в формате, который вы хотите (т.е. Javascript массива вместо объекта JavaScript) ,

Смежные вопросы