Получить сериализованные значения stdClass - PullRequest
0 голосов
/ 25 апреля 2018

У меня SQL-запрос:

$query = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS key_value FROM wp_customker WHERE ker_name = '1'");

Если я выполню этот запрос, я получу 176 элементов в сериализованном stdClass:

Array([0] => stdClass Object ([key_value] => a: 176: {i: 0; s: 10: "Ág utca"; i: 1; s: 14: "Aladár utca"; i: 2; s: 11: "Alag utca"; i: 3; s: 14: "Alagút utca" ...;}))

Я пытался преобразовать его в массив с $array = json_decode(json_encode($query), true);получил этот результат:

Array ([0] => Array ([key_value] => a: 176: {i: 0; s: 10: "Ág utca"; i: 1; s): 14: "Aladár utca"; i: 2; s: 11: "Alag utca" ...;}))

Мой вопрос заключается в том, как я могу десериализовать эти данные и echo всеСтроки в foreach петле?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Данные в key_value были сериализованы и не кодированы в json

Так, например, вы можете сделать это, чтобы получить исходные данные

$serial_data   = $query[0]->key_value;
$unserial_data = unserialize($serial_data);

foreach ( $unserial_data as $key=>$val) {
    echo $key . ' = ' . $val;
}
0 голосов
/ 25 апреля 2018

Функция WP get_results принимает второй аргумент

$query = $wpdb->get_results("
         SELECT SQL_CALC_FOUND_ROWS key_value FROM wp_customker WHERE ker_name = '1'", ARRAY_N);
...