usort(IRD::$domains, "compare"); // Сортировка
/* Функция для сортировки */
function compare ($v1, $v2) {
if ($v1=='Москва')return 9999;
elseif ($v1=='Санкт-Петербург')return 9998;
elseif ($v1["region"] == $v2["region"]) return 0;
return ($v1["region"] < $v2["region"])? -1: 1;
}
function compare ($v1, $v2) {
if ($v1=='Москва' && $v2='Санкт-Петербург') return -1;
if ($v2=='Москва' && $v1='Санкт-Петербург') return 1;
if ($v1=='Москва' && $v2!='Санкт-Петербург') return -1;
if ($v1=='Санкт-Петербург' && $v2!='Москва') return -1;
if ($v1!='Санкт-Петербург' && $v2='Москва') return 1;
if ($v1 == $v2) return 0;
return ($v1 < $v2)? -1 : 1;
}
$array = [
'Д',
'А',
'Б',
'В',
'Г',
'Ж',
'Ф',
'Х',
'О',
'П',
'Р',
'Санкт-Петербург',
'Т',
'З',
'У',
'Л',
'Москва',
'Н',
'Е',
];
$first = [
'Москва',
'Санкт-Петербург',
];
usort($array, function($a, $b) use ($first) {
foreach ($first as $item) {
if ($a == $item) return -1;
if ($b == $item) return 1;
}
if ($a == $b) return 0;
return $a < $b ? -1 : 1;
});
print_r($array);
$first = [
'Санкт-Петербург',
'Москва',
];