@JanaVysocka

Как не задавать елемент в массиве, если его значение null?

Есть такой массив:
$utms = [
'utm_source' => $_POST['utm_source'],
'utm_medium' => $_POST['utm_medium'],
'utm_campaign' => $_POST['utm_campaign'],
'utm_term' => $_POST['utm_term'],
'utm_content' => $_POST['utm_content'],
];

И хочется, чтобы если любое из его значений пустое либо null - то не назначать целую пару.
То-есть, если например empty($_POST['utm_source']) то пара 'utm_source' => $_POST['utm_source'] - вообще не назначается в массиве....
Не могу пока придумать как это вообще можно реализовать... Только учусь)
Какие могут быть варианты?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
Frostealth
@Frostealth
Backend Developer
array_filter
$utms = [
    'utm_source' => $_POST['utm_source'] ?? null,
    'utm_medium' => $_POST['utm_medium'] ?? null,
    'utm_campaign' => $_POST['utm_campaign'] ?? null,
    'utm_term' => $_POST['utm_term'] ?? null,
    'utm_content' => $_POST['utm_content'] ?? null,
];

// отфильтрует значения по empty
$utms = array_filter($utms);

// отфильтрует только null
$utms = array_filter($utms, fn($val) => $vall !== null)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы