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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сортировка массива

Сообщения:  [1-10]   [11-15] 

 
 автор: smit272   (08.09.2008 в 18:19)   письмо автору
 
   для: Temnovit   (08.09.2008 в 18:03)
 

всем спасибо.
все работает

  Ответить  
 
 автор: Trianon   (08.09.2008 в 18:07)   письмо автору
 
   для: smit272   (08.09.2008 в 17:58)
 

<?
function compare($a$b

  if(
$a["ParentID"] != $b["ParentID"]) 
    return 
* ($a["ParentID"] > $b["ParentID"]) - 1;
  if(
$a["newtime"] != $b["newtime"]) 
    return 
* ($a["newtime"] > $b["newtime"]) - 1;
  if(
$a["ID"] != $b["ID"]) 
    return 
* ($a["ID"] > $b["ID"]) - 1;
  return 
0;
}


Но следует учесть что если данные числовые, то и элементы массива должны быть числовыми . А не текстовыми. Так что вероятно потребуется приведение к int при сравнении.

  Ответить  
 
 автор: smit272   (08.09.2008 в 18:05)   письмо автору
 
   для: Temnovit   (08.09.2008 в 18:03)
 

Ну надо для 3-ех различных ключей
ParentID, ID, newtime

  Ответить  
 
 автор: Temnovit   (08.09.2008 в 18:03)   письмо автору
 
   для: Trianon   (08.09.2008 в 18:02)
 

Путаемся :) Наоборот, конечно.

  Ответить  
 
 автор: Temnovit   (08.09.2008 в 18:03)   письмо автору
 
   для: smit272   (08.09.2008 в 17:49)
 

>а если на 2 и на 3?
Не понимаю вопроса...

  Ответить  
 
 автор: Trianon   (08.09.2008 в 18:02)   письмо автору
 
   для: Temnovit   (08.09.2008 в 17:42)
 

> if ( $a['ParentID'] < $b['ParentID']) return 0;
> if ( $a['ParentID'] == $b['ParentID']) return -1;
издеваемся?

  Ответить  
 
 автор: smit272   (08.09.2008 в 17:58)   письмо автору
 
   для: Trianon   (08.09.2008 в 17:39)
 

<?
function compare($a$b) { 
    return 
strcmp($a["ParentID"], $b["ParentID"]); //выбираем нужный ключ для сортировки 
}
usort($tree"compare");
?>

  Ответить  
 
 автор: smit272   (08.09.2008 в 17:49)   письмо автору
 
   для: Temnovit   (08.09.2008 в 17:42)
 

а если на 2 и на 3?

  Ответить  
 
 автор: Temnovit   (08.09.2008 в 17:42)   письмо автору
 
   для: smit272   (08.09.2008 в 17:37)
 

Например так:
<?
function so ($a$b) {
   if ( 
$a['ParentID'] > $b['ParentID']) return 1;
   if ( 
$a['ParentID'] < $b['ParentID']) return 0;
    if ( 
$a['ParentID'] == $b['ParentID']) return -1;
}

uasort($arr'so');

?>

  Ответить  
 
 автор: Trianon   (08.09.2008 в 17:39)   письмо автору
 
   для: smit272   (08.09.2008 в 17:37)
 

пользовательскую функцию сравнения по одному ключу получается написать?
показывайте то что получается.

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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