Тюрина Леокадия Робертовна
Лапина Федосья Ильинична
Шершова Аполлинария Степановна
Сергеева Леокадия Артемовна
Тюрин Болеслав Ильич
PHP
Как отсортировать в алфавитном порядке фамилии пятерых людей? Их имена и Отчество сократить до инициалов
я сортирую в запросе скль.. если ты данные не с бд береш и у тебя на входе масив.
То сначала сортируешь свой масив, пример сортировки:
$src = array('абрикос',
'дуб',
'бук',
'ясень',
'пень',
'помидор',
'ягель',
'blau oder braun',
'ангина',
'брысь'
);
asort($src);
$dst = array();
foreach ($src as $buf) {
$lit = mb_substr($buf, 0, 1, 'UTF-8');
$dst[$lit][] = $buf;
}
var_dump($dst);
Далее разбиваешь на 3 масива фамия отчество имя
из 2 последних массивов оставляешь 1 заглавную букву и добавляешь точку в цикле.
потом собираешь 3 масива в единный.
То сначала сортируешь свой масив, пример сортировки:
$src = array('абрикос',
'дуб',
'бук',
'ясень',
'пень',
'помидор',
'ягель',
'blau oder braun',
'ангина',
'брысь'
);
asort($src);
$dst = array();
foreach ($src as $buf) {
$lit = mb_substr($buf, 0, 1, 'UTF-8');
$dst[$lit][] = $buf;
}
var_dump($dst);
Далее разбиваешь на 3 масива фамия отчество имя
из 2 последних массивов оставляешь 1 заглавную букву и добавляешь точку в цикле.
потом собираешь 3 масива в единный.
"Ручками" сможешь? Ну - и вперёд!
вот пример который вам подойдет
$array = array("Тюрина Леокадия Робертовна",
"Лапина Федосья Ильинична",
"Шершова Аполлинария Степановна",
"Сергеева Леокадия Артемовна",
"Тюрин Болеслав Ильич" );
function FT( &$elem )
{
$elem =explode( " ", $elem ); // строку в массив
// объединяем фамилию и инициалы имя и отчество
$elem = $elem[0] . " " . mb_substr($elem[1] , 0, 1 ) . " " . mb_substr( $elem[2], 0, 1 );
return $elem;
}
array_walk( $array , "FT" ); // применяем свою функцию к массиву
sort( $array, SORT_NATURAL | SORT_FLAG_CASE );
print_r( $array ); // выводим
// результат массив
Array
(
[0] => Лапина Ф И
[1] => Сергеева Л А
[2] => Тюрин Б И
[3] => Тюрина Л Р
[4] => Шершова А С
)
$array = array("Тюрина Леокадия Робертовна",
"Лапина Федосья Ильинична",
"Шершова Аполлинария Степановна",
"Сергеева Леокадия Артемовна",
"Тюрин Болеслав Ильич" );
function FT( &$elem )
{
$elem =explode( " ", $elem ); // строку в массив
// объединяем фамилию и инициалы имя и отчество
$elem = $elem[0] . " " . mb_substr($elem[1] , 0, 1 ) . " " . mb_substr( $elem[2], 0, 1 );
return $elem;
}
array_walk( $array , "FT" ); // применяем свою функцию к массиву
sort( $array, SORT_NATURAL | SORT_FLAG_CASE );
print_r( $array ); // выводим
// результат массив
Array
(
[0] => Лапина Ф И
[1] => Сергеева Л А
[2] => Тюрин Б И
[3] => Тюрина Л Р
[4] => Шершова А С
)
Похожие вопросы
- Как вывести имя и фамилию пользователя из куки? (PHP setcookie)
- в каком порядке изучать языки начинающему программисту? начал с Паскаля
- В автомагнитоле автомобиле Ravon Nexia R3, треки на флешке играет лишь в алфавитном порядке. Как исправить?
- Даны числительные языка деху в алфавитном порядке и их значения в порядке возрастания:
- Почему на клавиатуре буквы не в алфовитном порядке?. зачем так сделали в алфавитном порядке былобы проще!
- Запиши названия московских улиц в алфавитном порядке.
- Какая программа поможет расположить мне слова в алфавитном порядке?
- Книгу для старшеклассников о современных профессиях (в алфавитном порядке) стоит издать?
- Почему на клавиатуре буквы не в алфавитном порядке??
- Почему буквы на клавиатуре расположены не по алфавитному порядку?