С 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_decode в массив






Вы должны использовать json_decode для преобразования JSON, представляющего объект, в ассоциативный массив.
Пример кода
$resArr = json_decode($response, true);
Для получения дополнительной информации см. PHP JSON_DECODE
Мне нужно использовать json_decode при создании данных json, я правильно понимаю?
пожалуйста, нет таких вещей, как объект json или массив json: json — это просто строка, представляющая объект. Вы можете (в php) сериализовать объект или ассоциативный массив в json string с помощью json_encode и десериализовать строку (декодировать) в объекты или ассоциативные массивы.
Это то, что вам нужно, json_decode($json,true);
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = json_decode($json,1);
print_r($array[0]);
?>
ИЛИ используйте его как разборчивое строковое представление переменной с var_export()
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = var_export(json_decode($json,1)[0]);
print($array);
?>
Вам нужен
json_decode3v4l.org/W2sFp