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

Форум PHP

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

 

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

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

тема: Еще одна сортировка двухмерного массива
 
 автор: B@cZ   (12.02.2007 в 03:33)   письмо автору
 
 

Прошу еще помочь вот с чем.
есть два массива:

$arr_1 = array (
  '0' => array (
    'time' => '145678387'
  ),
  '1' => array (
    'time' => '145678547'
  ),
  '2' => array (
    'time' => '145678597'
  )
);

$arr_2 = array (
  '0' => array (
    'time' => '145674587'
  ),
  '1' => array (
    'time' => '145678677'
  ),
  '2' => array (
    'time' => '145673557'
  )
);


Необходимо объеденить их в один массив, и отсортировать по полю time, где time - время в Unix формате, соотвественно от самого старого до нового (т.е. в порядке возростания).

   
 
 автор: AlMag   (12.02.2007 в 10:12)   письмо автору
 
   для: B@cZ   (12.02.2007 в 03:33)
 

Ну, пробежались по первому массиву, добавили все элементы в какой-то $arr.
Так же сделали со в торым (дописали в $arr).
А Вы сортировать "ручками" умеете? Ну, бес ф-ций, а так, самому?

   
 
 автор: B@cZ   (12.02.2007 в 10:46)   письмо автору
 
   для: AlMag   (12.02.2007 в 10:12)
 

Ручками я умею, но это глупо, если мне необходим обрабатывать много информации за короткий промежуток времени.
Буду благодарен за любой написанный способ, желательно как можно оптимизированее.

   
 
 автор: AlMag   (12.02.2007 в 10:58)   письмо автору
 
   для: B@cZ   (12.02.2007 в 10:46)
 

Я просто не знаю всех ф-ций на пхп, с помощью которых можно сразу все отсортировать.
***
Ну как много? Быстрая сортировка делает все за N log N. Достаточно быстро.

   
 
 автор: Trianon   (12.02.2007 в 11:38)   письмо автору
 
   для: B@cZ   (12.02.2007 в 10:46)
 


$arr  = array_merge($arr_1, $arr_2);
print_r($arr);
usort($arr, 'cmp');

cmp сами напишете?

function cmp($a, $b) { return $a['time'] - $b['time']; } 

   
 
 автор: ZuArt   (12.02.2007 в 11:50)   письмо автору
 
   для: Trianon   (12.02.2007 в 11:38)
 

Хммм... не совсем понял, а зечем двумерный массив тут???

   
 
 автор: B@cZ   (12.02.2007 в 11:52)   письмо автору
 
   для: ZuArt   (12.02.2007 в 11:50)
 

Спасибо всем за помощь, тоже чуток подумав, сам справился)

function cmp ($a, $b) {
    return strcmp($a['time'], $b['time']);
}

asort($arr, 'cmp');

   
Rambler's Top100
вверх

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