Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将JSON字符串转换为数组_Php_Mysql_Arrays_Json_Database - Fatal编程技术网

Php 如何将JSON字符串转换为数组

Php 如何将JSON字符串转换为数组,php,mysql,arrays,json,database,Php,Mysql,Arrays,Json,Database,使用php,我需要将json数组转换为数组,我应该怎么做,json_encode不适合我,提前感谢您的帮助 //json序列 [ { "name":"Menu", "sub": [ { "name":"Menu 2", "url":"menu-2.php" } ] } ] 我应该这样做 array( 'name' => 'Menu', 'sub' => array( a

使用php,我需要将json数组转换为数组,我应该怎么做,json_encode不适合我,提前感谢您的帮助

//json序列

[
  {
   "name":"Menu",
   "sub":
   [
     {
      "name":"Menu 2",
      "url":"menu-2.php"
     }
   ]
  }
]
我应该这样做

array(
    'name'  => 'Menu',
    'sub'   => array(
        array(
            'name'  => 'Menu 2',
            'url'   => 'menu-2.php'
        )
    )
)
我正在用这个函数创建json数组 我必须在这里改变吗?我对数组不是很在行

<?php
    $connect = new PDO("mysql:host=localhost; dbname=propanel_001", "root", "");
    $parent_category_id = "";
    $query = "SELECT * FROM tb_sayfalar";
    $statement = $connect->prepare($query);
    $statement->execute();
    $result = $statement->fetchAll();
    foreach($result as $row)
    {
        $data = get_node_data($parent_category_id, $connect);
    }
    echo json_encode(array_values($data));
    function get_node_data($parent_category_id, $connect)
    {
        $query = "SELECT * FROM tb_sayfalar WHERE parent_id = '".$parent_category_id."'";
        $statement = $connect->prepare($query);
        $statement->execute();
        $result = $statement->fetchAll();
        $output = array();
        foreach($result as $row)
        {
            $sub_array = array();
            if (array_values(get_node_data($row['id'], $connect))) {
                $sub_array['name'] = $row['page_name']; 
                $sub_array['sub'] = array_values(get_node_data($row['id'], $connect));
            }else{
                $sub_array['name'] = $row['page_name']; 
                $sub_array['url'] = $row['page_url'].".php";
            }
            $output[] = $sub_array;
        }
        return $output;
    }
?>

必须使用
json\u decode
将表示对象的
json
转换为关联数组

示例代码

$resArr=json\u decode($response,true)


有关更多信息,请查看

这是您需要的,
json\u decode($json,true)


演示:

或者将其用作变量的可解析字符串表示形式



演示:

您需要
json\u decode
在创建json数据时我需要使用json\u decode的可能副本,我是否理解正确?请不要使用json对象或json数组:json只是表示对象的字符串。您可以(在php中)使用json_encode将对象或关联数组序列化为
json字符串
,并将字符串反序列化(解码)为对象或关联数组。
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = json_decode($json,1);
print_r($array[0]);
?>
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = var_export(json_decode($json,1)[0]);
print($array);
?>