Задать вопрос
@Speakea1y1289

Как оптимизировать мой код на PHP и сократить повторение функций для немного различимых переменных из массива?

Добрый день. Имеется следующий код:
// перебор массива Market и изменение кол-ва и цены. 
foreach ($updMarket as $i => $product) {

	$arAmount = array($product["PROPERTY_56_VALUE"],$product["PROPERTY_57_VALUE"],$product["PROPERTY_58_VALUE"]);
	$amount = array_sum($arAmount);
	
	settype($product["PROPERTY_53_VALUE"],"float");
	settype($product["PROPERTY_54_VALUE"],"float");
	settype($product["PROPERTY_55_VALUE"],"float");
	
	$arPrice = array_filter(array($product["PROPERTY_53_VALUE"],$product["PROPERTY_54_VALUE"],$product["PROPERTY_55_VALUE"]));
	$price = min($arPrice);
	
	$arLoadUpdProduct = Array(
		"amount" => $amount,
		"price" => $price,
	);

}

В данном коде мне не нравится, то что в переменных $arAmount и $arPrice создаётся массив с элементами из переменных из одного и того же массива $product, то есть меняется просто цифры с 53-58, а часть $product["PROPERTY_**_VALUE"] никак не меняется из-за чего получается много текста.
Также не нравится чрезмерное употребление settype также для не много изменяемых переменных:
settype($product["PROPERTY_**_VALUE"],"float");
В остальном вопросов нет. Как лучше сократить эту "вермишель"?
  • Вопрос задан
  • 815 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
@mr-troll
// перебор массива Market и изменение кол-ва и цены. 
foreach ($updMarket as $p) {
  $arLoadUpdProduct = [
    "amount" => $p["PROPERTY_56_VALUE"]+$p["PROPERTY_57_VALUE"]+$p["PROPERTY_58_VALUE"], 
    "price" => min([$p["PROPERTY_53_VALUE"], $p["PROPERTY_54_VALUE"], $p["PROPERTY_55_VALUE"]])
 ];
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы