Попробуйте этот код:
Вы используете 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";
}
}?>
Пытаться Исеть () функция.
Пример:-
if (isset($_SESSION['data'][$id])) {
echo "$id in array";
} else {
echo "$id not in array";
}
Других решений пока нет …