X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Сортировка массива.
sabr07
sabr07
Topic Starter сообщение 17.3.2013, 0:51; Ответить: sabr07
Сообщение #1


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

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


Я имею в виду, что по первому ключу "Ф.И.О" и по последнему "Визитам" получается. А из середины выбрать и отсортировать как?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sabr07
sabr07
Topic Starter сообщение 17.3.2013, 10:30; Ответить: sabr07
Сообщение #2


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

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>";
}
}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 18.3.2013, 9:51; Ответить: yury_mw
Сообщение #3


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";
?>


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужна помощь с DLE (сортировка новостей)
0 dimonsuper 3216 7.1.2015, 15:19
автор: dimonsuper
Открытая тема (нет новых ответов) Запись массива в БД (200 RUR)
3 pjotr 3492 7.2.2013, 15:41
автор: -A1ex-
Открытая тема (нет новых ответов) Из многомерного массива создать папки [СРОЧНО]
9 LifeUP 6215 20.8.2012, 20:05
автор: -HTMLandPHP-
Открытая тема (нет новых ответов) Сортировка
5 Tigor.v 8201 14.2.2011, 22:03
автор: -Tigor.v-


 



RSS Текстовая версия Сейчас: 16.4.2024, 12:55
Дизайн