Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сортировка 2 массивов
Форумы портала PHP.SU » PHP » Программирование на PHP » Сортировка 2 массивов

Страниц (1): [1]
 

1. SAD - 02 Июля, 2010 - 13:28:44 - перейти к сообщению
Есть два массива $mas_1 и $mas_2, первый числовой , второй вперемешку.
Сортируется первый массив по числам, нужно таким же образом отсортировать 2 массив, то есть по соответствию, например
PHP:
скопировать код в буфер обмена
  1. $mas_1[0] = 2; $mas_1[1] = 1; $mas_1[2] = 3;
  2. $mas_2[0] = 'тратата'; $mas_2[1] = 'ляляля'; $mas_2[2] = 'мумуму';


после сортировки должны быть так
PHP:
скопировать код в буфер обмена
  1. $mas_1[0] = 1; $mas_1[1] = 2; $mas_1[2] = 3;
  2. $mas_2[0] = 'ляляля'; $mas_2[1] = 'тратата'; $mas_2[2] = 'мумуму';
2. MarShall - 02 Июля, 2010 - 16:17:25 - перейти к сообщению
Набросал тут, не претендую на максимально правильное решение, так как использован пузырек, просто замените на нужный Вам алгоритм, принцип тот же:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $mas_1[0] = 2; $mas_1[1] = 1; $mas_1[2] = 3;
  3. $mas_2[0] = 'тратата'; $mas_2[1] = 'ляляля'; $mas_2[2] = 'мумуму';
  4. for($j=0; $j <= count($mas_1) - 2; $j++) {
  5.         if ($mas_1[$j] > $mas_1[$j+1]) {
  6.                 $k = $mas_1[$j];
  7.                 $mas_1[$j] = $mas_1[$j+1];
  8.                 $mas_1[$j+1] = $k;
  9.                 $k = $mas_2[$j];
  10.                 $mas_2[$j] = $mas_2[$j+1];
  11.                 $mas_2[$j+1] = $k;
  12.                 }
  13. }
  14.  
  15. echo $mas_2[0]." ".$mas_2[1]." ".$mas_2[2];
  16. echo $mas_1[0]." ".$mas_1[1]." ".$mas_1[2];
  17. ?>
3. SAD - 02 Июля, 2010 - 16:27:17 - перейти к сообщению
спасибо, что - то я затупил, не додумался сам ))
4. JustUserR - 03 Июля, 2010 - 01:19:07 - перейти к сообщению
SAD Или же можно использовать строенную функцию сортировки по ключам http://php.su/functions/?uksort - с указанием функции обратного вызова которая сравнивает ключи вашего второго хеш-массива в том порядке как они расположены в перыом массике

 

Powered by ExBB FM 1.0 RC1