Я извлекаю список разрешений из БД и помещаю их в массив;Поиск массива, хранящегося в сеансе
while($row = mysql_fetch_assoc($get_permissions)) {
$_SESSION['permissions'][] = $row;
}
Содержимое переменной сеанса затем выглядит следующим образом:
array(2) {
[0]=> array(1) {
["permission_name"] => string(15) "acl_assets_read"
}
[1]=> array(1) {
["permission_name"] => string(16) "acl_assets_write"
}
}
Ниже представлен результат с использованием print_r, что упрощает его чтение.
Array ([0] => Array ([permission_name] => acl_assets_read) [1] => Array ( [permission_name] => acl_assets_write))
Я читал об использовании array_search и думаю, что он должен работать. Я попытался использовать следующее для поиска разрешения;
if (array_search('acl_assets_read', $_SESSION['permissions'])) {
echo "true";
}
Проблема у меня в том, что, хотя результат есть, он продолжает возвращать false. Синтаксис выглядит корректно для меня.
'array_search' не ищет рекурсивный. – Daan
array_search соответствует входу элементам массива. Вы ищете строку в массиве, который не содержит строк, содержит другие массивы, которые, в свою очередь, содержат строки. Так что это не сработает. – pvg
Разве это не var_dump, который добавляет эти биты? – Nathan