Как нормализовать значения массива без скрытой потери данных
Нормализация приводит представление к договорённому формату, а валидация отдельно решает, допустимо ли полученное значение.
$normalized = array_map(static fn (string $value): string => trim($value), $input);Сначала схема
Перечислите ожидаемые ключи и типы. Не применяйте один callback ко всем значениям, если имя, цена и флаг имеют разные правила.
Явное преобразование
<?php
$normalized = [
'name' => trim((string) ($input['name'] ?? '')),
'count' => filter_var($input['count'] ?? null, FILTER_VALIDATE_INT),
];null и отсутствующий ключ
Оператор ?? подходит, когда null и отсутствие трактуются одинаково. Если это разные состояния, сначала используйте array_key_exists().
Не скрывать ошибку
Приведение `(int) 'abc'` даёт ноль и может превратить некорректный ввод в допустимое значение. Для пользовательских чисел применяйте проверку с явным результатом false.
Набор тестов
Проверьте пробелы, пустую строку, null, отсутствующий ключ, строку '0', отрицательное число и неожиданный вложенный массив.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.