Ошибка массива, возвращающая ноль / ложь

1

У меня есть массив, который возвращается в таком формате:

a:1:{i:0;i:305;}

Я не могу, кажется, unserialize() чтобы получить доступ к 305. У кого-нибудь есть идея, что я могу сделать?

Запрос в WordPress:

$order_id = $wpdb->get_row("SELECT meta_value FROM wp_postmeta WHERE post_id=" . $t->object_id . " AND meta_key='wpc_inv_order_id");

Я попытался использовать:

$str = $order_id->meta_value;
$a = unserialize($str);
var_dump($a);
echo $a;

в результате чего bool(false).

Однако кажется, что просто выполнив echo $order_id->meta_value; он как-то несериализуется и теперь дает мне значение ID в сериализованном массиве.

Таким образом:

$str = $order_id->meta_value;
echo $str;

Я получаю вывод 305 выше.

Спасибо за помощь!

  • 1
    Можем ли мы увидеть исходный массив?
  • 0
    У меня его нет, я пытаюсь отредактировать начальный плагин других пользователей. 305 - это идентификатор строки в другой таблице, к которой мне нужно получить доступ. Я попытаюсь найти, где это ввод.
Показать ещё 13 комментариев
Теги:
arrays
serialization

1 ответ

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

Посмотрите, что является результатом unserialize

$str = 'a:1:{i:0;i:305;}';
var_dump($a = unserialize($str));

array(1) {
  [0]=>
  int(305)
}

Итак, возьмите его через $a[0];

  • 0
    $str = $order_id['meta_value']; $a = unserialize($str); echo $a[0]; var_dump($a); Это Бул (ложь) для всего
  • 0
    @ Джейкоб, что в результате?
Показать ещё 3 комментария

Ещё вопросы

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