У меня есть запрос 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
цикл?
Данные в key_value
был сериализован и не JSON-кодируется
Так, например, вы можете сделать это, чтобы получить исходные данные
$serial_data = $query[0]->key_value;
$unserial_data = unserialize($serial_data);
foreach ( $unserial_data as $key=>$val) {
echo $key . ' = ' . $val;
}
Функция WP get_results принимает второй аргумент
$query = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS key_value FROM wp_customker WHERE ker_name = '1'", ARRAY_N);