@Darklt

Как вывести среднее значение из массива bitrix?

Есть массив множественных строк типа число. Вывожу так:

<?foreach($arItem["PROPERTIES"]["rating"]["VALUE"] as $vals):?>
	 <?print_r($vals);?>

<?endforeach;?>


выводит в виде 1 5 2 2 3 итд.
как вывести чтобы было среднее значение количество рейтинга (1+5+2+2+3/5) = 2.6
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Aricus
<?php $ratingVals = $arItem["PROPERTIES"]["rating"]["VALUE"];
$count = count($ratingVals);
$median = round (array_sum($ratingVals) / $count, 2); ?>
(<?=implode('+', $ratingVals)?>)/<?=$count?> = <?=$median?>

Кстати, на всякий случай (вдруг вы не в курсе), в некоторых версиях php <? ... ?> не работает, лучше писать <?php ... ?> , или <?=$var?> для записи значения в HTML.
Ответ написан
@anton99zel
29а класс средней школы №7
рейтинг

На мой взгляд рейтинг так нельзя считать, особенно при сортировке элементов по рейтингу.
В своё время находил статью на эту тему, вроде даже на форуме Битрикса. Там было написано как правильно вывести формулу.
Сами смотрите:
1 человек поставил оценку 5 и рейтинг у товара будет 5
А к другому товару 200 человек поставили разные оценки на общий балл 4,7, например.
Исходя из вашей системы подсчетов Первый товар будет более рейтинговым, чем второй, хотя и не пользуется популярностью совсем.
значение выгрузить в свойство обратно чтобы хранилось в БД

CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));
Ответ написан
Ваш ответ на вопрос

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

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