У меня есть простая структура php с 3 вложенными массивами.
Я не использую конкретные объекты, и я создаю массивы с двумя вложенными циклами.
Вот пример var_dump массива, который я хочу преобразовать в Json.
array (size=2)
  'tram B' => 
    array (size=2)
      0 => 
        array (size=3)
          'name' => string 'Ile Verte' (length=9)
          'distance' => int 298
          'stationID' => int 762
      1 => 
        array (size=3)
          'name' => string 'La Tronche Hôpital' (length=18)
          'distance' => int 425
          'stationID' => int 771
  16 => 
    array (size=4)
      0 => 
        array (size=3)
          'name' => string 'Bastille' (length=8)
          'distance' => int 531
          'stationID' => int 397
      1 => 
        array (size=3)
          'name' => string 'Xavier Jouvin' (length=13)
          'distance' => int 589
          'stationID' => int 438
В другом script у меня похожая структура, а json_encode отлично работает.
Поэтому я не понимаю, почему json_encode здесь не будет работать.
Изменить: похоже, проблема с кодировкой. Когда mb_detect_encoding возвращает ASCII, json_encode работает, но когда он возвращает UTF8, он больше не работает.
Edit2: json_last_error() возвращает JSON_ERROR_UTF8, что означает: Неправильные символы UTF-8, возможно, неправильно закодированные.