Как очистить вход массива [null] для моей программы API? - PullRequest
1 голос
/ 30 сентября 2019

Я вызываю API через почтальона и передаю следующие параметры.

reason: string
staff_ids[]:

Когда передано staff_ids пусто, я получил [null] на стороне сервера.

, так что условиеполучает всегда true.

if(isset($request->staff_ids) && !empty($request->staff_ids)){
//
}

Есть ли способ проверить, имеет ли массив [null]?

Ответы [ 3 ]

1 голос
/ 30 сентября 2019

Вместо проверки вы можете просто отфильтровать все NULL значения перед другими работами

if (!isset($request->staff_ids) || $request->staff_ids === null) {
  $request->staff_ids = array(); // default to empty array if is not set or is null
} 

if (!empty($request->staff_ids)) {
  $request->staff_ids = array_filter($request->staff_ids, function ($id) {
    return ($id !== null);
  });

  if (!empty($request->staff_ids)) {
    // ...
  }
}
1 голос
/ 30 сентября 2019

Я отфильтровал значения массива перед проверкой как @ KoalaYeung Ответил. Работает нормально.

$request->staff_ids = array_filter($request->staff_ids, function ($id) {
        return ($id !== null);
      });

    if(isset($request->staff_ids) && !empty($request->staff_ids)){
      ///

    }

Есть ли лучший подход?

0 голосов
/ 30 сентября 2019

вы можете проверить это с помощью функции is_null и sizeof () для массива

if(!is_null($request->staff_ids) && sizeof($request->staff_ids)){
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...