Сегодня решили задачу сортировки дополнительных фотографий товара с описание. В описание добавили квадратные скобки для хранения поля сортировки, пример описания: [1] Системный блок без корпуса.
А вот код с помощью которого можно отсортировать по такому описанию с сохранением порядка, если поле не заполнено:
На выходе имеем отсортированный массив $arPHOTO.
А вот код с помощью которого можно отсортировать по такому описанию с сохранением порядка, если поле не заполнено:
foreach($arFields['PROPERTIES']['MORE_PHOTO']['VALUE'] as $PHOTO) { $arPHOTO[]=CFile::GetFileArray($PHOTO); } // Костыль для сортировки дополнительных изображений товара. Сортируем по описанию, пример: [1] Сервер HP ProLiant ML350e Gen8 - настольное исполнение корпуса foreach($arPHOTO as $key => $value) { if(preg_match("/\[(.*?)\]/", $value['DESCRIPTION'], $matches)) { $arPHOTO[$key]['DESCRIPTION'] = trim(str_replace($matches[0], '', $value['DESCRIPTION'])); $arPHOTO[$key]['SORT'] = $matches[1]; } else $arPHOTO[$key]['SORT'] = 1000 + $key; $sorts[$key] = $arPHOTO[$key]['SORT']; } array_multisort($sorts, SORT_ASC, $arPHOTO); |
На выходе имеем отсортированный массив $arPHOTO.