Сортировка многомерного массива
Добрый день!
Помогите пожалуйста отсортировать многомерный массив $PLACEMARKSследующего вида $PLACEMARKS = array(); $i=0; foreach($arResult["ITEMS"] as $arItem) { if ($arItem["PROPERTIES"]["GOOGLE_MAP"]["VALUE"]!=""){ $MAP = explode (",", $arItem["PROPERTIES"]["GOOGLE_MAP"]["VALUE"]); $TEXT = "<a href=".$arItem["DETAIL_PAGE_URL"].">".$arItem["NAME"]."</a>"; $PLACEMARKS[$i]["X"] = $MAP[0]; //Заполняем массив маркера данными $PLACEMARKS[$i]["Y"] = $MAP[1]; // $PLACEMARKS[$i]["NAME"] = $arItem["NAME"]; // $PLACEMARKS[$i]["COUNTRY"] = $arItem["DISPLAY_PROPERTIES"]["COUNTRY"]["VALUE"]; $PLACEMARKS[$i]["YEAR"] = $arItem["DISPLAY_PROPERTIES"]["YEAR"]["VALUE"]; //получим значения пользовательских полей раздела $sUFCode="UF_".strtoupper($arItem["PROPERTIES"]["ETAP"]["VALUE_XML_ID"])."_ICON"; $arSelect = array("$sUFCode"); $sectionResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID"=> $arResult["ID"], "ID" =>$arItem["IBLOCK_SECTION_ID"]), false, $arSelect); while ($sectionProp = $sectionResult -> GetNext()) { $iFileId=$sectionProp[$sUFCode];//id файла иконки для карты $PLACEMARKS[$i]["ICO"]=CFile::GetPath($iFileId); } $PLACEMARKS[$i]["URL"] = $arItem["DETAIL_PAGE_URL"]; $str = str_replace("\n"," ",$arItem["PREVIEW_TEXT"]); $str = strip_tags($str); $PLACEMARKS[$i]["TEXT"] ="<a href=".$arItem["DETAIL_PAGE_URL"]." style=\"color: #555555; font-family: Arial,Helvetica,sans-serif; font-size: 12px; text-decoration: none\">".$str."</a>"; //получим название раздела $arIBlockSection = GetIBlockSection($arItem["IBLOCK_SECTION_ID"]); $sSectionName = $arIBlockSection["NAME"]; unset($arIBlockSection); $PLACEMARKS[$i]["SECTION"] = $sSectionName; $PLACEMARKS[$i]["IMG"]=$arItem["PREVIEW_PICTURE"]["SRC"]; } $i++; } reset($PLACEMARKS); по полю $PLACEMARKS[$i]["YEAR"] |
не уверен, но вроде так :
uasort($PLACEMARKS, function($a, $b){ $a=$a["YEAR"];$b=$b["YEAR"]; return ($a==$b) ? 0 :(($a>$b) ? 1:-1 ) }); |
впринципе по мимо примера выше, можно извернутся через
array_multisort Да и вообще все возможные варианты сортировки см. тут: Сортировка многомерных массивов по ключу на PHP |
Что-то стала мне интересна эта тема. В итоге провел тесты всех способов, и оказалось что array_multisort работает быстрее на порядок. Добавил результаты в обзор по ссылке выше.
|
Часовой пояс GMT +3, время: 07:04. |