@UnderDog32

Создание объекта в массиве с условием. Что я делаю не так?

Есть код:

<?
	$arrProgressBuilds = [
	[
	'name' => $arResult[PROPERTIES][per1][NAME],
	],
	[
	'name' => $arResult[PROPERTIES][per2][NAME],
	],
	[
	'name' => $arResult[PROPERTIES][per3][NAME],
	],
	];
	
	$countArrBuilds = count($arrProgressBuilds);
	$countClassBuilds = [
	'2' => '6',
	'4' => '4',
	'6' => '4',
	'8' => '3'
	];
?>


Стоит задача - не объявлять элемент в массиве, если определённая переменная пустая.

Пишу код:

<?
	$arrProgressBuilds = [
	if (!empty($arResult[PROPERTIES][per1][VALUE])) {
		[
		'name' => $arResult[PROPERTIES][per1][NAME],
		],
	}
	if (!empty($arResult[PROPERTIES][per2][VALUE])) {
		[
		'name' => $arResult[PROPERTIES][per2][NAME],
		],
	}
	if (!empty($arResult[PROPERTIES][per3][VALUE])) {
		[
		'name' => $arResult[PROPERTIES][per3][NAME],
		],
	}
	
	$countArrBuilds = count($arrProgressBuilds);
	$countClassBuilds = [
	'2' => '6',
	'4' => '4',
	'6' => '4',
	'8' => '3'
	];
?>

Ничего не работает, PHP бьёт ошибку.

Пожалуйста, подскажите, что я делаю не так?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
Условие внутри объявления. Измените на:
$arrProgressBuilds = [];
if (!empty($arResult['PROPERTIES']['per1']['VALUE'])) {
  $arrProgressBuilds[] = [
  'name' => $arResult['PROPERTIES']['per1']['NAME'],
  ];
}
if (!empty($arResult['PROPERTIES']['per2']['VALUE'])) {
  $arrProgressBuilds[] = [
  'name' => $arResult['PROPERTIES']['per2']['NAME'],
  ];
}
if (!empty($arResult['PROPERTIES']['per3']['VALUE'])) {
  $arrProgressBuilds[] = [
  'name' => $arResult['PROPERTIES']['per3']['NAME'],
  ];
}


Учитесь читать ошибки, в них написано что не так.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
03 мая 2024, в 11:01
50000 руб./за проект
03 мая 2024, в 10:56
5000 руб./за проект
03 мая 2024, в 10:55
5000 руб./за проект