array_key_exists не работает должным образом

1

Я хочу проверить, существует ли какой-либо конкретный индекс в моем массиве. Я использую этот код:

 if(array_key_exists('resource_id', $_POST['resource_id']) == false)
 {
      $_POST['resource_id'] = 'undefined'; 
 }

$_POST['resource_id'] - это поле моего массива, которое я передаю в ajax-запрос из js-кода. Теперь проблема, что в некоторых случаях я не могу передать поле resource_id, и мне нужно оценивать его как undefined внутри моего условия как код выше.
Функция array_key_exists возвращает мне эту ошибку:

Сообщение: array_key_exists() ожидает, что параметр 2 будет массивом, null

Что я делаю не так?

  • 0
    я думаю, что ваш второй параметр $ _POST ['resource_id'] возвращает ноль, попробуйте распечатать его и посмотреть, что он возвращает
Теги:

3 ответа

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

Если я хорошо понимаю, "resource_id" не существует все время Итак, что вы хотите проверить, если оно существует в массиве $ _POST:

if(array_key_exists('resource_id', $_POST) == false)
{
     $_POST['resource_id'] = 'undefined'; 
}
  • 0
    Хорошее решение спасибо :) Хорошего дня.
1

Это может сработать, если вы сделали array_key_exists только на $ _POST, но для простоты я бы рекомендовал:

if(!isset($_POST['resource_id']){
    $_POST['resource_id'] = 'undefined';
}
  • 0
    На самом деле это может быть массив.
  • 0
    Упс отредактировано, спасибо!
0

второй параметр array_key_exists должен быть просто массивом, поэтому в вашем случае это будет

if(array_key_exists('resource_id', $_POST) == false)
{
     $_POST['resource_id'] = 'undefined'; 
}

Ещё вопросы

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