Поясни пожалуйста, почему происходит дублирование элементов списка каталога, при таком вывод списка в попытке отсортировать товары по формату изображений - сначала вертикальные, потом квадратные, горизонтальные, другие не попавшие в условие, без фото?
Пример кода
if (!isset($_GET['byName']) && !isset($_GET['byPrice']))
{
$arVert = array();
$arSquare = array();
$arHor = array();
$arQwadrat = array();
$arWithPhoto = array();
$arNoPhoto = array();
foreach ($arResult['elements'] as $key => $value)
$arFile = array();
if (isset($value["DEPTH_LEVEL"])) {
if (count($value['UF_CROPED']) > 0) {
$arFile = CFile::GetFileArray($value['UF_CROPED'][0]);
$arWithPhoto[$key] = $value;
} else {
$arNoPhoto[$key] = $value;
}
} else {
if (!empty($value["DETAIL_PICTURE"])) {
$arWithPhoto[$key] = $value;
$arFile = CFile::GetFileArray($value["DETAIL_PICTURE"]);
} else {
$arNoPhoto[$key] = $value;
}
}
if (!empty($arFile['WIDTH']) && !empty($arFile['HEIGHT']))
{
$k = floatval(intval($arFile['WIDTH']) / intval($arFile['HEIGHT']));
if ($k > 1.2)
{
$arHor[$key] = $value;
}
elseif ($k < 0.8) {
$arVert[$key] = $value;
}
else
{
$arSquare[$key] = $value;
}
}
}
$arResult['elements'] = array_merge($arVert, $arSquare, $arHor, $arWithPhoto, $arNoPhoto);
}