Почему in_array () всегда возвращает false?

Попробуйте этот код:

Вы используете URL с параметром id например index.php?id=value
это значение будет вытолкнут в data массив, который поддерживается в течение сеанса.

Я ожидаю, что этот тест всегда будет возвращаться true, Но это всегда возвращается false, Зачем?

   if (in_array($id, $_SESSION['data'])) {
echo "$id in array";
} else {
echo "$id not in array";
}

Полный код:

<?php

session_start();

//uncomment when need to clear the data array.
//if (isset($_SESSION['data'])) {
//    unset($_SESSION['data']);
//    die;
//}

if (!isset($_SESSION['data'])) {
$_SESSION['data'] = [];
}
if (isset($_GET['id'])) {
$id = strval($_GET['id']);

if (!in_array($id, $_SESSION['data'])) {
$_SESSION['data'][$id] = "data_$id";
}

echo '<pre>';
print_r($_SESSION['data']);
echo '</pre>';

// Why does this always return false?
if (in_array($id, $_SESSION['data'])) {
echo "$id in array";
} else {
echo "$id not in array";
}
}?>

1

Решение

Пытаться Исеть () функция.

Пример:-

if (isset($_SESSION['data'][$id])) {
echo "$id in array";
} else {
echo "$id not in array";
}
1

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

Других решений пока нет …

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