Я хочу изменить формат данных JSON с помощью PHP.
У меня такой массив:
Array (
[0] => stdClass Object (
[0] => Thu Apr 30 12:25:12 +0000 2015 )
[1] => stdClass Object (
[0] => Wed Apr 15 21:57:05 +0000 2015 )
)
Я попробовал json_encode ($ data); но это происходит следующим образом:
[{"0":"Thu Apr 30 12:25:12 +0000 2015"},{"0":"Wed Apr 15 21:57:05 +0000 2015"}]
Но я хочу этот формат:
["Thu Apr 30 12:25:12 +0000 2015","Wed Apr 15 21:57:05 +0000 2015"]
что мне делать?
Попробуйте эту функцию, передайте массив в качестве аргумента
function to_array_of_strings($data){
$result_array = array();
foreach($data as $key => $object){
foreach($object as $object_key => $object_value){
$result_array[] = $object_value;
}
}
return $result_array;
}
Перед вызовом json_encode()
вам нужно будет изменить структуру массива.
Я не уверен, почему у вас есть массив такой структуры, вы можете посмотреть, как $data
был создан в этом формате. Однако, работая с тем, что у вас есть:
$dates = array();
foreach ($data as $obj) {
$dates[] = $obj->0;
}
print_r(json_encode($dates));
Кроме того, anant kumar singh делает очень хороший момент, если вы позже десериализируете этот JSON, он не будет создавать тот же массив. Итак, снова вам следует вернуться к тому, как этот массив сериализуется и десериализуется и обеспечивает их соответствие.
Я попробовал это, и он работает:
$i=0;
foreach($fin as $key1 => $value){
foreach($value as $key2 => $value2){
$dates[$i]= $value2 ;
$i++;
}
}