Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2010, 16:38   #1
monbaln
Новичок
Джуниор
 
Регистрация: 05.09.2010
Сообщений: 2
По умолчанию Вопрос по сортировке многомерного массива

Имеется многомерный массив с данными:
$a[]['cat_id'] = 2;
$a[]['cat_id'] = 3;
$a[]['cat_id'] = 11;

Есть второй массив:
$b[] = 3;
$b[] = 11;
$b[] = 2;

Значения массива $b - это значения параметра cat_id, заданные в определенной последовательности.

Подскажите как отсортировать массив $a по полю cat_id в порядке следования cat_id, заданном в массиве $b?
monbaln вне форума Ответить с цитированием
Старый 05.09.2010, 18:01   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Можно примерно так:
PHP код:
$temp = array();

foreach(
$b as $b_key => $b_value){
    foreach(
$a as $a_key => $a_value){
        if(
$a_value['cat_id'] == $b_value){
            
$temp[] = array($a_key => $a_value);
        }
    }

var_dump($temp):
Код:
array
  0 => 
    array
      1 => 
        array
          'cat_id' => int 3
  1 => 
    array
      2 => 
        array
          'cat_id' => int 11
  2 => 
    array
      0 => 
        array
          'cat_id' => int 2
Решение не слишком изящно - но это потому,что такие моменты лучше реализовывать ещё на этапе формирования массива - при выборке данных из БД,например.

Последний раз редактировалось Andkorol; 06.09.2010 в 00:44.
Andkorol вне форума Ответить с цитированием
Старый 06.09.2010, 22:34   #3
monbaln
Новичок
Джуниор
 
Регистрация: 05.09.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Решение не слишком изящно - но это потому,что такие моменты лучше реализовывать ещё на этапе формирования массива - при выборке данных из БД,например.
Способ несколько ресурсозатратный на больших массивах, но вполне рабочий.
Спасибо.
monbaln вне форума Ответить с цитированием
Старый 06.09.2010, 22:59   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от monbaln Посмотреть сообщение
Способ несколько ресурсозатратный на больших массивах
О том и речь:
Цитата:
... такие моменты лучше реализовывать ещё на этапе формирования массива - при выборке данных из БД,например ...
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача многомерного массива в функцию Aerial Общие вопросы C/C++ 5 09.05.2010 14:06
Выведение многомерного массива в текстовый файл Lisёноk Помощь студентам 0 02.05.2010 19:46
Нюансы сортировки многомерного массива Хохматый PHP 2 31.01.2010 15:36
Сортировка многомерного массива Evgen1503 Помощь студентам 0 29.01.2010 13:59
Создание и перебор многомерного массива regman PHP 2 27.10.2009 11:29