Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка массива
 
 автор: neokortex   (07.04.2010 в 23:49)   письмо автору
 
 

Привет. Че-то не могу сообразить как отсортировать такой массив

$massiv = array (

  [0] => Array
        (
            [familiya] => Иванов
            [imya] => Василий
            [otchestvo] => Константинович
            [data] => 23.05.05
            [positia] => 3
            [email] => ivanov@mail.ru
        )

  [1] => Array
        (
            [familiya] => Петров
            [imya] => Александр
            [otchestvo] => Григорьевич
            [data] => 13.07.09
            [positia] => 1
            [email] => petrov@mail.ru
        )

  [2] => Array
        (
            [familiya] => Сидоров
            [imya] => Генадий
            [otchestvo] => Денисович
            [data] => 05.11.00
            [positia] => 2
            [email] => sidorov@yandex.ru
        )

);


вот такой приблизительно массив надо отсортировать например, по фамилии или по имени, или по другим ключам. Как это сделать?

  Ответить  
 
 автор: Trianon   (08.04.2010 в 00:23)   письмо автору
 
   для: neokortex   (07.04.2010 в 23:49)
 

usort()
а callback-компаратором можно задать любые правила сортировки.

  Ответить  
 
 автор: Usta   (08.04.2010 в 00:41)   письмо автору
 
   для: Trianon   (08.04.2010 в 00:23)
 


<?php
$mas 
= array(array("familiya" => "Петров","imya" => "Василий","otchestvo" => "Константинович","data" => "23.05.05 ","positia" => 3,"email" => "ivanov@mail.ru"), 
                array(
"familiya" => "Иванов","imya" => "Александр","otchestvo" => "Григорьевич","data" => "13.07.09 ","positia" => 1,"email" => "petrov@mail.ru"),
                array(
"familiya" => "Сидоров","imya" => "Генадий","otchestvo" => "Денисович","data" => "05.11.00","positia" => 2,"email" => "sidorov@yandex.ru"));
function 
cmp_fam($a$b)  // сортировка по фамилии
{
 return 
strcmp($a["familiya"], $b["familiya"]);
}
function 
cmp_name($a$b// сортировка по имени
{
 return 
strcmp($a["imya"], $b["imya"]);
}
usort($mas"cmp_name");
echo 
"<pre>";
print_r($mas);
echo 
"</pre>";
?> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования