在多维数组上使用json_decode

时间:2013-05-27 11:28:39

标签: php arrays json multidimensional-array

我试图用json_decode解码php中的二维数组。

我像这样创建我的数组:

    $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,但是当我删除mysql部分中的第一个json_encode();时,结果看起来像这样

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

我可以用preg_replace()删除qutoes,但我想知道是否有更好的解决方案。

我真的很感谢你的帮助。

顺便说一下,我的英语很糟糕!

1 个答案:

答案 0 :(得分:3)

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

不要对您的值进行双重编码!