Перейти к содержимому



Сортировка массива.

#1 sabr07
sabr07
  • Неактивные
  • 2 сообщений
  • Репутация: 0
0

Обновлено 18 марта 2013 - 08:51  Отправлено 16 марта 2013 - 23:51

Есть массив. Как отсортировать по значению ключа 'Возраст' ?

$class = array(
			   array(
					 "Ф.И.О" => 'Сидоров Александр Александрович',
					 "Возраст" => '35',
					 "Визитов" => '3'
					 ),
			   array(
					 "Ф.И.О" => 'Иванов Алексей Алексеевич',
					 "Возраст" => '40',
					 "Визитов" => '8'
					 ),
			   array(
					 "Ф.И.О" => 'Петров Сергей Борисович',
					 "Возраст" => '27',
					 "Визитов" => '5'
					 ),
			  );

Я имею в виду, что по первому ключу "Ф.И.О" и по последнему "Визитам" получается. А из середины выбрать и отсортировать как?

 

 

  • 0

#2 sabr07
sabr07
    Topic Starter
  • Неактивные
  • 2 сообщений
  • Репутация: 0

Отправлено 17 марта 2013 - 09:30

Все разобрался.
 

function cmp($key,$value){
if($key["Возраст"] == $value["Возраст"]){
return 0;
}
return($key["Возраст"] < $value["Возраст"]) ? -1 : 1;
}
uasort ($class,'cmp');
foreach ($class as $k => $z){
foreach ($z as $c => $d){
echo "$c ==> $d<br>";
}
}

  • 0

#3 yury
yury
  • Пользователь
  • 648 сообщений
  • Репутация: 195

Отправлено 18 марта 2013 - 08:51

sabr07,
есть же готовая функция для сортировки многомерных массивов: array_multisort. Так что сортировка массива по заданному столбцу выглядит как-то так:
<?php
$class = array(
array(
"Ф.И.О" => 'Сидоров Александр Александрович',
"Возраст" => '35',
"Визитов" => '3'
),
array(
"Ф.И.О" => 'Иванов Алексей Алексеевич',
"Возраст" => '40',
"Визитов" => '8'
),
array(
"Ф.И.О" => 'Петров Сергей Борисович',
"Возраст" => '27',
"Визитов" => '5'
),
);
function arr_sort($array_to_sort, $by_column){
  foreach ($array_to_sort as $value) {
   $sort_column[] = $value[$by_column];
  }
  array_multisort($sort_column, SORT_NUMERIC, SORT_ASC, $array_to_sort);
  return $array_to_sort;
}
echo "<pre>n";
print_r (arr_sort($class, 'Возраст'));
echo "</pre>n";
?>

  • 1



Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Август
Очков активности: 30 4 темы, 8 сообщений, 1 балл репутации
Сайт: bank.net.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 22.5 3 темы, 6 сообщений, 1 балл репутации

  • Фотография kuztoday
    #2

    kuztoday
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография mkreine
    #3

    mkreine (analiz-krovi.net)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография kolver
    #4

    kolver
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография Megoydagi
    #5

    Megoydagi (bank.net.ru)
    Очков активности: 9 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 7.5 Вне конкурса за определение пользователя месяца

  • Фотография Totti
    #7

    Totti
    Очков активности: 7.5 0 тем, 5 сообщений, 1 балл репутации

  • Фотография Zevss
    #8

    Zevss (domles43.ru)
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Фотография wp01
    #9

    wp01
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография r0mZet
    #10

    r0mZet (rz-style.ru)
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru