Как проверить наличие числа в сериализованном массиве в PHP?

Подскажите, как в php происходит проверка есть ли указанное число в массиве, вот на таком простом примере введите сюда описание изображения

<?php

$n = "a:2:{i:0;i:1;i:1;i:5;}";  /// gettype() показывает string
                            
$current_user_id = 5; /// integer

array_key_exists($current_user_id,  $n) ? $class_btn_n = 'btn_active' : $class_btn_n = '';
echo '<button class="'. $class_btn_n . '">Button</button>';

Не могу понять, почему не отрабатывает array_key_exists? Пробовал приводить к одинаковым типам и через in_array, но не сработало…


Ответы (1 шт):

Автор решения: Владимир Клыков
<?php
$n = "a:2:{i:0;i:1;i:1;i:5;}";
$n = unserialize($n);      
$current_user_id = 5;
$class_btn_n = in_array($current_user_id,  $n) ? 'btn_active' : '';
echo '<button class="'. $class_btn_n . '">Button</button>';
→ Ссылка