2013-05-27 4 views
-4

im пытается декодировать двумерный массив в php с помощью json_decode.Использовать json_decode на многомерном массиве

Я создаю мой массив так:

$query3 = 'SELECT * FROM `files` WHERE `company`="'.$_POST['company'].'"'; 
    $result3 = mysql_query($query3); 
    $return_type = "files"; 
    $data_files; 
    while($row3 = mysql_fetch_object($result3)) 
    { 
     $data_files[] .= json_encode(array("cat" => $row3->cat, "name" => $row3->name)); 
    } 

в нижней части моего кода я использую это:

$return = json_encode($data_files); 

мой результат выглядит следующим образом:

["{\"cat\":\"3\",\"name\":\"Flyer Vorwerk C-40 11\\\/2013\"}","{\"cat\":\"4\",\"name\":\"Katalog Sommer 2013\"}","{\"cat\":\"5\",\"name\":\"Beutel wechseln\"}","{\"cat\":\"5\",\"name\":\"Teppich sauber kriegen\"}","{\"cat\":\"3\",\"name\":\"Flyer Vorwerk C-70 11\\\/2013\"}"] 

к сожалению, там слишком много qutoes, но когда я удаляю первый json_encode(); в разделе mysql, результат выглядит так:

["Array","Array","Array","Array","Array"] 

Я мог бы удалить qutoes с помощью preg_replace(), но я хочу знать, есть ли лучшее решение.

Я очень благодарен за вашу помощь.

btw, sry для моего дерьмового английского!

ответ

3
$data_files = array(); 
while ($row3 = mysql_fetch_object($result3)) { 
    $data_files[] = array("cat" => $row3->cat, "name" => $row3->name); 
} 
return json_encode($data_files); 

Не кодируйте ваши значения двойным образом!

+0

Благодарим за быстрый ответ! Я уже пробовал, мой результат будет выглядеть как [«Массив», «Массив», «Массив», «Массив», «Массив»] –

+0

Это невозможно с показанным кодом. Что именно вы делаете с данными, чтобы получить этот результат? – deceze

+0

Я использую печать, чтобы показать ее, не более того. Мне просто нужно увидеть результат в формате JSON. –

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