Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

сортировка массива в php

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов
Предыдущая тема :: Следующая тема  
Автор Сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Пн Окт 09 2006 10:58    Заголовок сообщения: сортировка массива в php Ответить с цитатой

Положим есть массив:

Код:
 $par_Array[0]["id"] = 4;
 $par_Array[0]["name"] = "огурец";
 $par_Array[0]["color"] = "green";

 $par_Array[1]["id"] = 6;
 $par_Array[1]["name"] = "помидор";
 $par_Array[1]["color"] = "red";

 $par_Array[2]["id"] = 5;
 $par_Array[2]["name"] = "капуста";
 $par_Array[2]["color"] = "white";


вопрос, - есть ли стандартная функция php, способная отсортировать массив по полю, пусть по color.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Neeoon



Зарегистрирован: 19.11.2004
Сообщения: 173
Откуда: Ukraine

СообщениеДобавлено: Пн Окт 09 2006 12:57    Заголовок сообщения: Ответить с цитатой

попробуй функцию array_multisort();
_________________
Всё, что ни делается, - всё к лучшему!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Ср Окт 18 2006 13:58    Заголовок сообщения: Ответить с цитатой

пробую:
Код:
  $l_Array[0]["a"]   = "9";
  $l_Array[1]["a"]   = "1";
  $l_Array[2]["a"]   = "3";
  $l_Array[3]["a"]   = "5";
  $l_Array[4]["a"]   = "7";
  $l_Array[5]["a"]   = "2";


  $l_Array[0]["b"]   = "wer9";
  $l_Array[1]["b"]   = "gdf1";
  $l_Array[2]["b"]   = "hfd3";
  $l_Array[3]["b"]   = "bvc5";
  $l_Array[4]["b"]   = "xcv6";
  $l_Array[5]["b"]   = "bxcv2";

  array_multisort( $l_Array );
  print_r( $l_Array );

массив сортируется по первому полю, - то есть по полю "а". Как отсортировать по полю "b" не смог понять.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Neeoon



Зарегистрирован: 19.11.2004
Сообщения: 173
Откуда: Ukraine

СообщениеДобавлено: Ср Окт 18 2006 14:26    Заголовок сообщения: Ответить с цитатой

Попробуй поля поменять местами Smile
тоесть:
Цитата:

$l_Array[0]["b"] = "wer9";
$l_Array[1]["b"] = "gdf1";
$l_Array[2]["b"] = "hfd3";
$l_Array[3]["b"] = "bvc5";
$l_Array[4]["b"] = "xcv6";
$l_Array[5]["b"] = "bxcv2";

$l_Array[0]["a"] = "9";
$l_Array[1]["a"] = "1";
$l_Array[2]["a"] = "3";
$l_Array[3]["a"] = "5";
$l_Array[4]["a"] = "7";
$l_Array[5]["a"] = "2";

_________________
Всё, что ни делается, - всё к лучшему!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Чт Окт 19 2006 09:58    Заголовок сообщения: Ответить с цитатой

нет, это не то. я привёл экстра частный пример.

Пусть массив выводится в виде таблицы. И у таблицы кнопки, которые должны позволять сортировать массив по произвольному полю... А полей в таблице множество. И что тогда?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Neeoon



Зарегистрирован: 19.11.2004
Сообщения: 173
Откуда: Ukraine

СообщениеДобавлено: Чт Окт 19 2006 12:18    Заголовок сообщения: Ответить с цитатой

На счет сортировки в таблице без перезагрузки страницы
http://htmlcoder.visions.ru/JavaScript/?22
_________________
Всё, что ни делается, - всё к лучшему!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Чт Окт 19 2006 13:37    Заголовок сообщения: Ответить с цитатой

Neeoon, нет, извени, снова не катит.

Сортировка нужна именно средствами PHP.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kocherman



Зарегистрирован: 06.01.2006
Сообщения: 88
Откуда: Обнинск

СообщениеДобавлено: Чт Окт 19 2006 16:33    Заголовок сообщения: Ответить с цитатой

попробуй написать сортировку влоб и сам... и побуквенно, я так писал на Си для доса... у меня на это ушло время 30 минут. это занимает в 100 раз меньше времени, чем то время, которое ты потратишь в поисках стандартной функции... Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Neeoon



Зарегистрирован: 19.11.2004
Сообщения: 173
Откуда: Ukraine

СообщениеДобавлено: Чт Окт 19 2006 22:45    Заголовок сообщения: Ответить с цитатой

Цитата:

$l_Array[0]["a"] = "9";
$l_Array[1]["a"] = "1";
$l_Array[2]["a"] = "3";
$l_Array[3]["a"] = "5";
$l_Array[4]["a"] = "7";
$l_Array[5]["a"] = "2";

$l_Array[0]["b"] = "wer9";
$l_Array[1]["b"] = "gdf1";
$l_Array[2]["b"] = "hfd3";
$l_Array[3]["b"] = "bvc5";
$l_Array[4]["b"] = "xcv6";
$l_Array[5]["b"] = "bxcv2";
//print_r( $l_Array );

foreach ($l_Array as $key => $val) {
$arr_a[$key]=$val["a"];
$arr_b[$key]=$val["b"];
}

asort($arr_b);

foreach ($arr_b as $key => $val) {
$Array[$val]["a"] = $arr_a[$key];
$Array[$val]["b"] = $val;
}
print_r($Array);


Щас сортировка по полю "b"
Для сортировки по полю "а", надо поменять выделеные масивы местами
_________________
Всё, что ни делается, - всё к лучшему!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Пт Окт 20 2006 09:47    Заголовок сообщения: Ответить с цитатой

kocherman писал(а):
попробуй написать сортировку влоб и сам...

это занимает в 100 раз меньше времени, чем то время, которое ты потратишь в поисках стандартной функции... Wink


у меня давно есть такая функция.
только вот мучает вопрос, - есть ли стандартная.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Пт Окт 20 2006 10:11    Заголовок сообщения: Ответить с цитатой

пока более всего порадовало такое решение:
Код:
function cmp($a, $b)
{
   global $column;
   return strcmp($a[$column], $b[$column]);
}
global $column;
$column   = "b";
usort($l_Array, "cmp");
print_r( $l_Array );
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...