изменение данных JSON

1

Я хочу изменить формат данных 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"]

что мне делать?

  • 2
    почему ты так хочешь. в следующий раз он не будет декодироваться.
  • 2
    вам нужно преобразовать свою структуру в массив строк, а не объектов-объектов.
Показать ещё 2 комментария
Теги:

3 ответа

0
Лучший ответ

Попробуйте эту функцию, передайте массив в качестве аргумента

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;
}
  • 0
    с вашим решением в результате получается строка, но, к сожалению, я хочу массив объектов
  • 0
    Вы сказали, что хотите этого [«Четверг 30 апреля 12:25:12 +0000 2015», «Ср 15 апреля 21:57:05 +0000 2015»], так что это не массив объектов, а массив строк. Скажите мне, если я прав, и я изменю ответ, чтобы соответствовать тому, что вам нравится.
Показать ещё 2 комментария
1

Перед вызовом json_encode() вам нужно будет изменить структуру массива.

Я не уверен, почему у вас есть массив такой структуры, вы можете посмотреть, как $data был создан в этом формате. Однако, работая с тем, что у вас есть:

$dates = array();
foreach ($data as $obj) {
    $dates[] = $obj->0;
}
print_r(json_encode($dates));

Кроме того, anant kumar singh делает очень хороший момент, если вы позже десериализируете этот JSON, он не будет создавать тот же массив. Итак, снова вам следует вернуться к тому, как этот массив сериализуется и десериализуется и обеспечивает их соответствие.

  • 0
    Во-первых, у меня есть данные, которые я хочу проанализировать [ stackoverflow.com/questions/30492158/… и после некоторого кодирования я получаю этот формат данных ($ data), фактически я хочу получить массив объектов, чтобы использовать их получить статистику, если есть возможность, пожалуйста, совет
  • 0
    Не голосуйте в тишине.
Показать ещё 2 комментария
0

Я попробовал это, и он работает:

 $i=0;
    foreach($fin as $key1 => $value){
        foreach($value as $key2 => $value2){
            $dates[$i]= $value2 ;
            $i++;
        }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню