Добрый день профессионалы, нужно было отсортировать массив по возрасту. Мне дали хороший совет реализации в php7 (см ниже). Но как мне добавить дополнительную сортировку по Имени, после того как отсортировалось по возрасту? (в реальном примере людей больше 500 а возраст указан только у 10%)
<?php
$entries=array();
$entries[0]["displayname"]="Ivan" ;
$entries[0]["age"]=32 ;
$entries[1]["displayname"]="Anna" ;
$entries[1]["age"]=24 ;
$entries[2]["displayname"]="Bob" ;
$entries[2]["age"]=29 ;
$entries[3]["displayname"]="Stuart";
$entries[3]["age"]=28 ;
For ($i=0; $i<4; $i++) {echo $entries[$i]["displayname"] .' '. $entries[$i]["age"].'<br>';}
?>
Решение:
usort($entries,function($a,$b) {
return $a['age'] > $b['age'];
});
usort($entries, function($a, $b) {
if (!is_numeric($a['age']) && is_numeric($b['age'])) {
// Не указан возраст А
return false;
} else if (is_numeric($a['age']) && !is_numeric($b['age'])) {
// Не указан возраст Б
return true;
} else
if (is_numeric($a['age']) && is_numeric($b['age']) && ($a['age'] != $b['age'])) {
// Сравниваем по возрасту
return $a['age'] > $b['age'];
} else {
// Если оба возраста не указаны, или указаны и равны, то сравниваем по имени
return $a['displayname'] > $b['displayname'];
}
});
Не знаю почему заработала сортировка array_multisort, хотя все на забугорных сайтах ругают что она не сортирует числа. Короче вот простая реализация моего вопроса. Возраст - это extansionattribute2
foreach ($entries as $key => $row) {
$extensionattribute2[$key] = $row['extensionattribute2'];
$displayname[$key] = $row['displayname'];
array_multisort($extensionattribute2, SORT_DESC, $displayname, SORT_ASC, $entries);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
здравствуйте, столкнулся с проблемой, не могу понять как отобразить любой META тег на странице в виде обычного текстаЕсть ли какой то способ...
Ребята, возможно не особо удачно составил оглавление вопроса, но суть заключается в следующем:
Ситуация такая: есть сайт на wordpress с плагином leadsВ нём есть множество форм