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

Форум PHP

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

 

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

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

тема: Как упорядочть два связанных массива?
 
 автор: Владимир55   (06.12.2007 в 11:20)   письмо автору
 
 

Есть два массива, определяющие координаты точки на графике. Один из массивов содержит текст, а другой - числа. Примерно так:

$r[1] = "Киев";         $m[1] = 11;
$r[2] = "Москва";       $m[2] = 55;
$r[3] = "Омск";         $m[3] = 27;


Нужно упорядочить второй массив по убыванию, сохранив связь с первым массивом. Примерно так:

$r[1] = "Москва";      $m[1] = 55;
$r[2] = "Омск";        $m[2] = 27;
$r[3] = "Киев";        $m[3] = 11;


Вот как бы это осуществить?

   
 
 автор: sim5   (06.12.2007 в 12:11)   письмо автору
 
   для: Владимир55   (06.12.2007 в 11:20)
 

>Есть два массива

И где связь? Два массива, это уже значит, что нет между ними никакой связи, она может быть чисто условной.
rsort() ко второму массиву, вот и все решение.

   
 
 автор: Владимир55   (06.12.2007 в 12:42)   письмо автору
 
   для: sim5   (06.12.2007 в 12:11)
 

Логическая связь между массивами существует, и я её описал: из первого массива берется одна координата графика, а из второго другая. Если применить rsort() ко второму массиву, а первый не трогать, то получится:


$r[1] = "Киев";         $m[1] = 55;
$r[2] = "Москва";       $m[2] = 27;
$r[3] = "Омск";         $m[3] = 11; 


Это будет не обработка данных, а их искажение, так что такой прием не подходит.

   
 
 автор: sim5   (06.12.2007 в 12:49)   письмо автору
 
   для: Владимир55   (06.12.2007 в 12:42)
 

Сортируйте певый массив, но только по возрастанию, в чем собственно проблема? Вся связь между ними эфимерна. Вам нужно просто отсортировать их так, как вы желаете, а делается это простым вызовом соответсвующей функции. Вы сами себе создаете лишние проблемы.

   
 
 автор: Владимир55   (06.12.2007 в 13:00)   письмо автору
 
   для: sim5   (06.12.2007 в 12:49)
 

Связь между массивами - это то, что обязательно должно сохраниться, ибо ради нее все и делается. Чтобы на графике было

Москва - 55
Омск - 27
Киев - 11

и никак иначе.

А Вы никак не поймете смысла и предлагаете какую-то ерунду.

   
 
 автор: retsoul   (06.12.2007 в 13:07)   письмо автору
 
   для: Владимир55   (06.12.2007 в 13:00)
 

вместо 2-х разных массивов используйте один ассоциированный массив:

<?
$arr 
= Array("Moscow" => 55"Omsk" => 27);
?>

и сортируйте его значения функцией asort() или ksort() в зависимости от результата, который хотите получить

   
 
 автор: Владимир55   (06.12.2007 в 13:16)   письмо автору
 
   для: retsoul   (06.12.2007 в 13:07)
 

Точно!
Вот как раз это мне и надо! БОЛЬШОЕ спасибо!

   
Rambler's Top100
вверх

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