Итак, у меня есть массив с именем $subcats, например:

Array
(
  [83] => Array
    (
        [0] => Array
            (
                [id_sous_categ] => 4
                [val] => filtre a essance
            )

        [1] => Array
            (
                [id_sous_categ] => 6
                [val] => filtre AIR
            )         
    )

  [89] => Array
    (
        [0] => Array
            (
                [id_sous_categ] => 8
                [val] => plaquette de frein 
            )

        [1] => Array
            (
                [id_sous_categ] => 9
                [val] => disque de frien
            )

    )
)

Когда я делаю: $jsonSubCats = json_encode($subcats); Результат пустой. Что я делаю не так?

Редактировать: var_dump($subcats) показывает:

array(7) { [83]=> array(4) { [0]=> array(2) { ["id_sous_categ"]=> string(1) "4" ["val"]=> string(16) "filtre a essance" } [1]=> array(2) { ["id_sous_categ"]=> string(1) "6" ["val"]=> string(10) "filtre AIR" } [2]=> array(2) { ["id_sous_categ"]=> string(1) "7" ["val"]=> string(14) "filtre a huile" } [3]=> array(2) { ["id_sous_categ"]=> string(2) "14" ["val"]=> string(16) "filtre a gasoile" } } [89]=> array(2) { [0]=> array(2) { ["id_sous_categ"]=> string(1) "8" ["val"]=> string(19) "plaquette de frein " } [1]=> array(2) { ["id_sous_categ"]=> string(1) "9" ["val"]=> string(15) "disque de frien" } } [84]=> array(6) { [0]=> array(2) { ["id_sous_categ"]=> string(2) "10" ["val"]=> string(23) "huile SAE 50 5L 5000 km" } [1]=> array(2) { ["id_sous_categ"]=> string(2) "11" ["val"]=> string(23) "huile SAE 50 1L 5000 km" } [2]=> array(2) { ["id_sous_categ"]=> string(2) "12" ["val"]=> string(22) "huile 15W40 5L 7000 km" } [3]=> array(2) { ["id_sous_categ"]=> string(2) "13" ["val"]=> string(22) "huile 15w40 1L 7000 km" } [4]=> array(2) { ["id_sous_categ"]=> string(2) "15" ["val"]=> string(22) "huile 10W40 5L10000 km" } [5]=> array(2) { ["id_sous_categ"]=> string(2) "16" ["val"]=> string(22) "huile 10W40 1L10000 km" } } [91]=> array(3) { [0]=> array(2) { ["id_sous_categ"]=> string(2) "17" ["val"]=> string(13) "joint culasse" } [1]=> array(2) { ["id_sous_categ"]=> string(2) "18" ["val"]=> string(20) "joint cache soupape " } [2]=> array(2) { ["id_sous_categ"]=> string(2) "19" ["val"]=> string(13) "joint carter " } } [86]=> array(6) { [0]=> array(2) { ["id_sous_categ"]=> string(2) "20" ["val"]=> string(6) "avant " } [1]=> array(2) { ["id_sous_categ"]=> string(2) "21" ["val"]=> string(7) "arrier " } [2]=> array(2) { ["id_sous_categ"]=> string(2) "22" ["val"]=> string(18) "amortisseur avant " } [3]=> array(2) { ["id_sous_categ"]=> string(2) "23" ["val"]=> string(18) "amortisseur arrier" } [4]=> array(2) { ["id_sous_categ"]=> string(2) "24" ["val"]=> string(28) "biellette suspension arriere" } [5]=> array(2) { ["id_sous_categ"]=> string(2) "25" ["val"]=> string(26) "biellette suspension avant" } } [96]=> array(1) { [0]=> array(2) { ["id_sous_categ"]=> string(2) "26" ["val"]=> string(6) "moteur" } } [80]=> array(1) { [0]=> array(2) { ["id_sous_categ"]=> string(2) "27" ["val"]=> string(15) "but�e embrayage" } } } 

Заранее спасибо.

0
SoufCoder 10 Июл 2015 в 13:31
1
Невозможно воспроизвести: codepad.org/pybXlQ7l
 – 
Felix Kling
10 Июл 2015 в 13:36
Можете ли вы предоставить нам полный сценарий, чтобы мы могли увидеть, может ли быть что-то еще причиной?
 – 
dsojevic
10 Июл 2015 в 13:43
Возможно, это не массив массивов, а массив объектов с непубличными атрибутами. Непубличные атрибуты не будут отображаться после json_encode
 – 
Raphael Rafatpanah
10 Июл 2015 в 13:43
Можете ли вы предоставить правильную форму $subcats
 – 
Dhinju Divakaran
10 Июл 2015 в 14:05
2
Если json_encode или json_decode не работают, обычно рекомендуется проверить, что возвращает json_last_error()...
 – 
EJTH
10 Июл 2015 в 14:14

2 ответа

json_encode не может кодировать строки, отличные от utf8. Проверьте кодировку строк. Если это так, вам нужно либо преобразовать строки в utf8, либо использовать собственную реализацию json_encode (которую вы можете быстро найти в Google по фразе «реализация php json_encode»).

2
AlexM 10 Июл 2015 в 14:12
Спасибо @pumbo! В этом была проблема.
 – 
SoufCoder
10 Июл 2015 в 15:18

Убедитесь, что на вашем сервере включена поддержка json.

Запустите простой <?php phpinfo() ?> в любом файле php и найдите JSON.

enter image description here

0
Malay M 10 Июл 2015 в 13:54
Да, json включен, версия 1.2.1 тоже. И я работаю на локальном хосте.
 – 
SoufCoder
10 Июл 2015 в 13:57
Вы можете запустить var_dump($subcats) и опубликовать вывод здесь?
 – 
Malay M
10 Июл 2015 в 14:00