#php #arrays #json
#php #массивы #json
Вопрос:
У меня есть массив, похожий на приведенный ниже:
array («животное» => array («лев», «рыба», «тигр)
И я хочу перейти к следующему в формате JSON.
‘{«группа»:»животное»,»типы»:[«лев», «рыба», «тигр»]}’
Как мне добавить «метки», такие как «group» и «type»?
Комментарии:
1. Вы не сможете превратить этот массив в этот объект. Вам нужно переформатировать ваш массив (
$arr = ['group' => 'animal', 'types' => [..]]
. Затем закодируйте его.2. Ваш вопрос слишком широкий. Вы переходите от «массива PHP» к «Иначе организованной структуре данных JSON». В чем собственно проблема? Это перестановка массива PHP? Понятно ли, что структура массива PHP даст вам желаемый JSON? Преобразует ли это структуру данных PHP в JSON?
3. @Deepak это вернет null.
Ответ №1:
$array=array();
$array['animal'] = array('lion','tiger','fish');//Your array
echo json_encode(array("group"=>"animal","types"=>$array['animal']));
//Output : {"group":"animal","types":["lion","tiger","fish"]}
Ответ №2:
Создайте и отформатируйте результирующий массив, который позволит вам хранить данные в ожидаемом формате.
<?php
$arr = array("animal" => array("lion", "fish", "tiger"));
$result = array("group" => "",
"types" => array());
foreach ($arr as $key => $value)
{
$result["group"] = $key;
$result["types"] = $value;
}
var_dump(json_encode($result));
вывод :
string(50) "{"group":"animal","types":["lion","fish","tiger"]}"
Если у вас много групп, возможно, потребуется немного изменить цикл :
<?php
$arr = array(array("animal" => array("lion", "fish", "tiger")),
array("colors" => array("red", "green", "blue")));
$finalResult = array();
foreach ($arr as $item)
{
foreach ($item as $key => $value)
{
$result["group"] = $key;
$result["types"] = $value;
$finalResult[] = $result;
}
}
var_dump(json_encode($finalResult));
Вывод :
string(102) "[{"group":"animal","types":["lion","fish","tiger"]},{"group":"colors","types":["red","green","blue"]}]"
Комментарии:
1. Мне любопытно узнать причину DV