Форум сетевых администраторов
Показаны 2 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Сортировка массива в PHP (new) (http://netadmin.ws/forum/showthread.php?threadid=9623)


Помещено kostolom 03-10-2004 в 09:43:

Question Сортировка массива в PHP (new)

Очень нужна помощь по сортировке массива в PHP.

Ситуация такая:
Дан массив из трёх столбцов и надо сделать так, чтобы можно было сортировать по любому из них.

Пример:

Фамилия Имя Отчество

Иванов Андрей Сидорович
Петров Василий Иванович
Сидоров Иван Борисович
Горбачев Михаил Сергеевич
Ельцин Борис Николаевич
Путин Владимир Владимирович

пример строк в файле базы данных:
________________________________
Иванов|Андрей|Сидорович
Петров|Василий|Иванович
Сидоров|Иван|Борисович
Горбачев|Михаил|Сергеевич
Ельцин|Борис|Николаевич
________________________________

Жмём на ‘Фамилия’ – сортирует по фамилии.
Жмём по ‘Имя’ – сортирует по имени.
Жмём на ‘Отчество’ – сортирует по отчеству

Пожалуйста, напишите рабочий PHP-код на данном примере.
Просто я в других темах читал, но у меня не получилось.
Я начинающий и надеюсь на ответ профессионалов.
Я на нём буду учиться.

Заранее благодарен.


Помещено polo 03-10-2004 в 11:21:


PHP:


$array 
= array(
            array(
                
'surname' => 'Петров',
                
'name' => 'Гоша',
                
'name1' => 'Петрович'
                
),
            array(
                
'surname' => 'Сидоров',
                
'name' => 'Сергей',
                
'name1' => 'Иванович'
                
)
            );
            

swith ($sortorder)
{
    case 
'surname':
    case 
'name':
    case 
'name1':
        
usort($block_data, 'sort_by_' . $sortorder);
        break;
    default:
        
usort($block_data, 'sort_by_name');
}


function 
sort_by_surname ($a, $b)
{
    return  
strcmp($a['surname'], $b['surname']);
}

function 
sort_by_name ($a, $b)
{
    return  
strcmp($a['name'], $b['name']);
}

function 
sort_by_name1 ($a, $b)
{
    return  
strcmp($a['name1'], $b['name1']);
}

__________________
Всегда есть решение.


Формат времени GMT. Текущее время 08:33.
Показаны 2 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.