Nano Hash - криптовалюты, майнинг, программирование

Как очистить ввод массива [null] для моей программы API?

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

reason: string
staff_ids[]:

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

так что условие всегда становится истинным.

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

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

30.09.2019

  • Я думаю, это будет особое условие. Я хочу проверить массив, если он имеет какой-то возврат, в противном случае false. 30.09.2019
  • На самом деле я думаю, что неправильно истолковал ваш вопрос, и, возможно, это должно быть implode(',', $request->staff_ids) == 'null' 30.09.2019
  • Что такое I got [null] in server-side - массив('null'), массив(), массив(NULL)? 30.09.2019
  • @splash58, получаю ответ в виде: [null] в почтальоне. 30.09.2019
  • Может быть, помогите - заголовок stackoverflow.com/questions/42993222/ 30.09.2019

Ответы:


1

Вместо проверки вы можете просто отфильтровать все значения 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)) {
    // ...
  }
}
30.09.2019
  • когда снимите отметку с поля staff_ids[] в почтальоне, это дает array_filter() expects parameter 1 to be array, null given 30.09.2019
  • Так что $request->staff_ids может вообще не быть установлено. В этом случае я обновил свое предложение. 30.09.2019
  • Да, именно ваше решение работает для меня Спасибо :) 30.09.2019

  • 2

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

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

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

    30.09.2019
  • Это зависит от того, какой уровень вы планируете исправить. Вы хотите, чтобы Postman вообще не отправлял этот массив [NULL]? Или вы думаете, что ваш скрипт на стороне сервера генерирует массив [NULL]? Или вы просто хотите дезинфицировать свой ввод? 30.09.2019
  • Вы не показываете достаточно кода, чтобы можно было провести более глубокую диагностику. 30.09.2019
  • Просто я хочу очистить ваш ввод. 30.09.2019

  • 3

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

    if(!is_null($request->staff_ids) && sizeof($request->staff_ids)){
    }
    
    30.09.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..