powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сортировка многомерного массива
3 сообщений из 3, страница 1 из 1
Сортировка многомерного массива
    #33059625
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть массив
$my_array[$i][1] = 'Иванов'
$my_array[$i][2] = 'Петя'
$my_array[$i][8] = '26.01.2005 15:12'
...
$my_array[$i][11] - поле сортировки... может быть строковое или дата/время в зависимости от условия...

$my_array = incision_sort($my_array,11);

Есть функция сортировки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  function incision_sort($arr, $col)
  {
    for($k =  0 ; $k < sizeof($arr)- 1 ; $k++)
    {
      $t = $arr[$k+ 1 ]; 
      $i = $k;    
      while($i >=  0  and $arr[$i][$col] < $t[$col])
      {
        $arr[$i+ 1 ] = $arr[$i];
        $i--;
      } 
      $arr[$i+ 1 ] = $t;                            
    }
    return $arr;        
  }

Она подходит только для строковых... а мне надо что б и для даты/время...
Плиз хелп...
...
Рейтинг: 0 / 0
Сортировка многомерного массива
    #33059675
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
...
Рейтинг: 0 / 0
Сортировка многомерного массива
    #33059785
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят...

Я пошел други путем...

Привык работать со строками и масивами прямиком

Есть массив
$my_array[$i][1] = 'Иванов'
$my_array[$i][2] = 'Петя'
$my_array[$i][8] = '26.01.2005 15:12'
...
$my_array[$i][11] - поле сортировки... может быть строковое или дата/время в зависимости от условия...

$my_array = incision_sort($my_array,11,$i);
//$i -> 0,1 в зависимости от условия...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
// Функция сортировки
// $arr = массив для сортировкм
// $col = колонка сортировки
  function incision_sort($arr, $col, $date)
  {
    for($k =  0 ; $k < sizeof($arr)- 1 ; $k++)
    {
      $t = $arr[$k+ 1 ]; 
      $i = $k;    
      if ($date ==  0 )
      {
        while($i >=  0  and $arr[$i][$col] < $t[$col])
        {
          $arr[$i+ 1 ] = $arr[$i];
          $i--;
        } 
        $arr[$i+ 1 ] = $t;
      }
      else
      {
        $min=substr($arr[$i][$col], 14 , 2 );
        $ch=substr($arr[$i][$col], 11 , 2 );
        $den=substr($arr[$i][$col], 0 , 2 );
        $mes=substr($arr[$i][$col], 3 , 2 );
        $god=substr($arr[$i][$col], 6 , 4 );
        $min1=substr($t[$col], 14 , 2 );
        $ch1=substr($t[$col], 11 , 2 );
        $den1=substr($t[$col], 0 , 2 );
        $mes1=substr($t[$col], 3 , 2 );
        $god1=substr($t[$col], 6 , 4 );
        while($i >=  0  and (god<god1 or (god==god1 and $mes<$mes1) or (god==god1 and $mes=$mes1 and $den<$den1)
               or (god==god1 and $mes=$mes1 and $den=$den1 and $ch<$ch1) or (god==god1 and $mes=$mes1 and $den=$den1 and $ch=$ch1 and $min<$min1)))
        {
          $arr[$i+ 1 ] = $arr[$i];
          $i--;
        } 
        $arr[$i+ 1 ] = $t;
      }
    }
    return $arr;        
  }



Всем ответившим ОГРОМНЫЙ сенкс
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сортировка многомерного массива
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]