Получить сериализованные значения stdClass

У меня есть запрос 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út 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 цикл?

0

Решение

Данные в key_value был сериализован и не JSON-кодируется

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

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

foreach ( $unserial_data as $key=>$val) {
echo $key . ' = ' . $val;
}
0

Другие решения

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector