За последние 24 часа нас посетили 55157 программистов и 1730 роботов. Сейчас ищет 851 программист ...

Из трех массивов собрать один

Тема в разделе "PHP для новичков", создана пользователем ALEXU, 31 окт 2012.

  1. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Доброго времени суток.

    Ребята, помогите с проблемой пожалуйста.
    Есть три массива (получаю данные из БД)
    Код (Text):
    1. // МАССИВ 1 - ГРУППЫ
    2. Array
    3. (
    4.     [0] => Array
    5.     (
    6.         [group_id] => 1
    7.         [group_title] => Группа 1
    8.     )
    9.     [1] => Array
    10.     (
    11.         [group_id] => 2
    12.         [group_title] => Группа 2
    13.     )
    14. )
    15.  
    16. // МАССИВ 2 - ПАРАМЕТРЫ
    17. Array
    18. (
    19.     [0] => Array
    20.     (
    21.         [group] => 0
    22.         [title] => Параметр 1
    23.         [value] => 1
    24.     )
    25.     [1] => Array
    26.     (
    27.         [group] => 2
    28.         [title] => Параметр 2
    29.         [value] => 4
    30.     )
    31.     [2] => Array
    32.     (
    33.         [group] => 0
    34.         [title] => Параметр 3
    35.         [value] => 6
    36.     )
    37. )
    38.  
    39. // МАССИВ 3 - ЗНАЧЕНИЯ
    40. Array
    41. (
    42.     [0] => Array
    43.     (
    44.         [value_id] => 1
    45.         [value_title] => Значение 1
    46.     )
    47.     [1] => Array
    48.     (
    49.         [value_id] => 4
    50.         [value_title] => Значение 2
    51.     )
    52.     [2] => Array
    53.     (
    54.         [value_id] => 6
    55.         [value_title] => Значение 1
    56.     )
    57. )
    На выходе нужно получить
    Код (Text):
    1.  
    2. Array
    3. (
    4.     [0] => Array
    5.     (
    6.         [group_id] => 1
    7.         [group_title] => Группа 1
    8.     )
    9.     [1] => Array
    10.     (
    11.         [group_id] => 2
    12.         [group_title] => Группа 2
    13.         [features] => Array
    14.         (
    15.             [0] => Array
    16.             (
    17.                 [group] => 2
    18.                 [title] => Параметр 2
    19.                 [value] => 4
    20.                 [values] => Array
    21.                 (
    22.                     [0] => Array
    23.                     (
    24.                         [value_id] => 4
    25.                         [value_title] => Значение 4
    26.                     )
    27.                     [1] => Array
    28.                     (
    29.                         [value_id] => 4
    30.                         [value_title] => Значение 5
    31.                     )
    32.                 )
    33.             )
    34.         )
    35.     )
    36.     [] => Array
    37.     (
    38.         [group_id] =>
    39.         [group_title] =>
    40.         [features] => Array
    41.         (
    42.             [0] => Array
    43.             (
    44.                 [group] => 0
    45.                 [title] => Параметр 1
    46.                 [value] => 1
    47.                 [values] => Array
    48.                 (
    49.                     [0] => Array
    50.                     (
    51.                         [value_id] => 1
    52.                         [value_title] => Значение 1
    53.                     )
    54.                 )
    55.             )
    56.             [1] => Array
    57.             (
    58.                 [group] => 0
    59.                 [title] => Параметр 3
    60.                 [value] => 6
    61.                 [values] => Array
    62.                 (
    63.                     [0] => Array
    64.                     (
    65.                         [value_id] => 6
    66.                         [value_title] => Значение 6
    67.                     )
    68.                 )
    69.             )
    70.         )
    71.     )
    72. )
    Связь групп и параметров по group_id и group
    Связь параметров и значений по value и value_id

    Но бывает так, что группа не указана а в массив все равно нужно выводить параметры.
    Т.е. тут получается так, что часть параметров может быть привязана к группам, а часть нет.

    Гуглил много, форычей перенаписал кучу, но не получается сделать такой массив.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    давай не print_r массивов, а их в коде, а то вручную набирать влом.
     
  3. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Вот в коде собрал
    Код (Text):
    1. // МАССИВ 1 - ГРУППЫ
    2. $arr1 = array(
    3.     array(
    4.         'group_id' => '1',
    5.         'group_title' => 'Группа 1',
    6.     ),
    7.     array(
    8.         'group_id' => '2',
    9.         'group_title' => 'Группа 2',
    10.     ),
    11. );
    12.  
    13. // МАССИВ 2 - ПАРАМЕТРЫ
    14. $arr2 = array(
    15.     array(
    16.         'group' => '0',
    17.         'title' => 'Параметр 1',
    18.         'value' => '1',
    19.     ),
    20.     array(
    21.         'group' => '2',
    22.         'title' => 'Параметр 2',
    23.         'value' => '4',
    24.     ),
    25.     array(
    26.         'group' => '0',
    27.         'title' => 'Параметр 3',
    28.         'value' => '6',
    29.     ),
    30. );
    31.  
    32. // МАССИВ 3 - ЗНАЧЕНИЯ
    33. $arr3 = array(
    34.     array(
    35.         'value_id' => '1',
    36.         'value_title' => 'Значение 1',
    37.     ),
    38.     array(
    39.         'value_id' => '4',
    40.         'value_title' => 'Значение 2',
    41.     ),
    42.     array(
    43.         'value_id' => '6',
    44.         'value_title' => 'Значение 1',
    45.     ),
    46. );
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Это простая логика
    Код (PHP):
    1. function mix($arr1, $arr2, $arr3) {
    2.     foreach ($arr1 as &$group) {
    3.         foreach ($arr2 as $n=>&$param) {
    4.             foreach ($arr3 as $u=>$value) {
    5.                 if ($value['value_id'] == $param['value']) {
    6.                     if (empty($param['values'])) {
    7.                         $param['values'] = array($value);
    8.                     } else {
    9.                         $param['values'][] = $value;
    10.                     }
    11.                     unset($arr3[$u]);
    12.                 }
    13.             }
    14.             if ($param['group'] == $group['group_id']) {
    15.                 if (empty($group['features'])) {
    16.                     $group['features'] = array($param);
    17.                 } else {
    18.                     $group['features'][] = $param;
    19.                 }
    20.                 unset($arr2[$n]);
    21.             }
    22.         }
    23.     }
    24.     return $arr1;
    25. } 
    Правда она не решает задачу с отсутствующими группами
     
  5. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Спасибо большое! Буду пробовать что-то сделать с группами. Правда пока без понятия что))
    Это же получается что нужно пустой массив как-то создавать?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Просто создай спец. группу для таких параметров и работай с ней особо.
     
  7. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Так и сделаю. Просто переписывать не мало.

    Еще раз спасибо!
     
  8. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Что-то не пойму как сливать значения к определенным параметрам.
    Массив немного изменен, к Параметр 3 добавилось еще одно Значение 7
    Добавился ID параметра
    Пример
    Код (Text):
    1. // МАССИВ 1 - ГРУППЫ
    2. $arr1 = array(
    3.     array(
    4.         'group_id' => '1',
    5.         'group_title' => 'Группа 1',
    6.     ),
    7.     array(
    8.         'group_id' => '2',
    9.         'group_title' => 'Группа 2',
    10.     ),
    11. );
    12.  
    13. // МАССИВ 2 - ПАРАМЕТРЫ
    14. $arr2 = array(
    15.     array(
    16.         'group' => '1',
    17.         'pid' => '1',
    18.         'title' => 'Параметр 1',
    19.         'value' => '1',
    20.     ),
    21.     array(
    22.         'group' => '2',
    23.         'pid' => '2',
    24.         'title' => 'Параметр 2',
    25.         'value' => '4',
    26.     ),
    27.     array(
    28.         'group' => '2',
    29.         'pid' => '3',
    30.         'title' => 'Параметр 3',
    31.         'value' => '6',
    32.     ),
    33.     array(
    34.         'group' => '2',
    35.         'pid' => '3',
    36.         'title' => 'Параметр 3',
    37.         'value' => '7',
    38.     ),
    39. );
    40.  
    41. // МАССИВ 3 - ЗНАЧЕНИЯ
    42. $arr3 = array(
    43.     array(
    44.         'value_id' => '1',
    45.         'value_title' => 'Значение 1',
    46.     ),
    47.     array(
    48.         'value_id' => '4',
    49.         'value_title' => 'Значение 2',
    50.     ),
    51.     array(
    52.         'value_id' => '6',
    53.         'value_title' => 'Значение 1',
    54.     ),
    55.     array(
    56.         'value_id' => '7',
    57.         'value_title' => 'Значение 7',
    58.     ),
    59. );
    Но не получается слить параметры по pid, чтобы они не повторялись в массиве.
    Т.е. у нас Параметр 3 в массиве два раза, так как у него два значения.
    Но как сделать, чтобы объединить Параметр 3 по pid, и в нем уже вывести его значения 6 и 7
    Параметр 3
    --- Значение 6
    --- Значение 7

    а не
    Параметр 3
    --- Значение 6
    Параметр 3
    --- Значение 7
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    пройти в цикле по массиву и переделать в новый массив

    foreach ($arr2 as $arr2_val) {
    $newarray[$arr2_val['pid']][] = $arr2_val;
    }
     
  10. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Извиняюсь за нубство, но можно подробнее?
    если вместо arr2 в функцию mix отдаю новый массив newarray, то выводит только группы, так как массив изменился и функция уже не работает.
     
  11. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Можно попробовать использовать array_merge
     
  12. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Не вижу как можно array_merge использовать.
    нужно просто если pid совпадает, то объединять значения этого pid в один массив.
     
  13. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Ребята, ну помогите пожалуйста.
    Не могу поправить функцию предложенную [vs], чтобы заработало с новым массивом, как предложил igordata
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. // МАССИВ 1 - ГРУППЫ
    2. $arr1 = array(
    3.     array(
    4.         'group_id' => '1',
    5.         'group_title' => 'Группа 1',
    6.     ),
    7.     array(
    8.         'group_id' => '2',
    9.         'group_title' => 'Группа 2',
    10.     ),
    11. );
    12.  
    13. // МАССИВ 2 - ПАРАМЕТРЫ
    14. $arr2 = array(
    15.     array(
    16.         'group' => '0',
    17.         'title' => 'Параметр 1',
    18.         'value' => '1',
    19.     ),
    20.     array(
    21.         'group' => '2',
    22.         'title' => 'Параметр 2',
    23.         'value' => '4',
    24.     ),
    25.     array(
    26.         'group' => '0',
    27.         'title' => 'Параметр 3',
    28.         'value' => '6',
    29.     ),
    30. );
    31.  
    32. // МАССИВ 3 - ЗНАЧЕНИЯ
    33. $arr3 = array(
    34.     array(
    35.         'value_id' => '1',
    36.         'value_title' => 'Значение 1',
    37.     ),
    38.     array(
    39.         'value_id' => '4',
    40.         'value_title' => 'Значение 2',
    41.     ),
    42.     array(
    43.         'value_id' => '6',
    44.         'value_title' => 'Значение 1',
    45.     ),
    46. );
    47.  
    48. //причешем первый массив
    49. $a = array();
    50. foreach ($arr1 as $value) {
    51.   $a[$value['group_id']] = $value['group_title'];
    52. }
    53. $arr1 = $a;
    54. unset($a);
    55.  
    56. //теперь третий
    57. $a = array();
    58. foreach ($arr3 as $value) {
    59.   $a[$value['value_id']] = $value['value_title'];
    60. }
    61. $arr3 = $a;
    62. unset($a);
    63.  
    64. //можно клеить
    65. $mix = array();
    66. foreach ($arr2 as $a2) {
    67.   //var_dump($a2);
    68.   $mix[$a2['group']] = array(
    69.       'group' => $a2['group'],
    70.       'group_title' => (isset($arr1[$a2['group']]) ? $arr1[$a2['group']] : $a2['group'] ),
    71.       'title' => (isset($arr3[$a2['title']]) ? $arr3[$a2['title']] : $a2['title']),
    72.   );
    73. }
    74.  
    75. var_dump($mix); 
     
  15. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    igordata, $mix не возвращает "Параметр 1"
    только
    Код (Text):
    1. Array
    2. (
    3.     [0] => Array
    4.         (
    5.             [group] => 0
    6.             [group_title] => 0
    7.             [title] => Параметр 3
    8.         )
    9.  
    10.     [2] => Array
    11.         (
    12.             [group] => 2
    13.             [group_title] => Группа 2
    14.             [title] => Параметр 2
    15.         )
    16.  
    17. )
    что-то я запутался совсем.
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    что?

    Добавлено спустя 17 секунд:
    а, точно

    Добавлено спустя 9 минут 29 секунд:
    Код (PHP):
    1. <?php
    2.  
    3. // МАССИВ 1 - ГРУППЫ
    4. $arr1 = array(
    5.     array(
    6.         'group_id' => '1',
    7.         'group_title' => 'Группа 1',
    8.     ),
    9.     array(
    10.         'group_id' => '2',
    11.         'group_title' => 'Группа 2',
    12.     ),
    13. );
    14.  
    15. // МАССИВ 2 - ПАРАМЕТРЫ
    16. $arr2 = array(
    17.     array(
    18.         'group' => '0',
    19.         'title' => 'Параметр 1',
    20.         'value' => '1',
    21.     ),
    22.     array(
    23.         'group' => '2',
    24.         'title' => 'Параметр 2',
    25.         'value' => '4',
    26.     ),
    27.     array(
    28.         'group' => '0',
    29.         'title' => 'Параметр 3',
    30.         'value' => '6',
    31.     ),
    32. );
    33.  
    34. // МАССИВ 3 - ЗНАЧЕНИЯ
    35. $arr3 = array(
    36.     array(
    37.         'value_id' => '1',
    38.         'value_title' => 'Значение 1',
    39.     ),
    40.     array(
    41.         'value_id' => '4',
    42.         'value_title' => 'Значение 2',
    43.     ),
    44.     array(
    45.         'value_id' => '6',
    46.         'value_title' => 'Значение 1',
    47.     ),
    48. );
    49.  
    50. //причешем первый массив
    51. $a = array();
    52. foreach ($arr1 as $value) {
    53.   $a[$value['group_id']] = $value['group_title'];
    54. }
    55. $arr1 = $a;
    56. unset($a);
    57. //теперь второй
    58. //$a = array();
    59. //foreach ($arr2 as $value) {
    60. //  $a[$value['group']] = $value;
    61. //}
    62. //$arr2 = $a;
    63. //unset($a);
    64. //теперь третий
    65. $a = array();
    66. foreach ($arr3 as $value) {
    67.   $a[$value['value_id']] = $value['value_title'];
    68. }
    69. $arr3 = $a;
    70. unset($a);
    71.  
    72. //можно клеить
    73. $mix = array();
    74. foreach ($arr2 as $a2) {
    75.   //var_dump($a2);
    76.   if (!isset($mix[$a2['group']])) {
    77.     $mix[$a2['group']] = array(
    78.         'group' => $a2['group'],
    79.         'group_title' => (isset($arr1[$a2['group']]) ? $arr1[$a2['group']] : $a2['group'] ),
    80.         'params' => array(),
    81.     );
    82.   }
    83.   $mix[$a2['group']]['params'][$a2['title']] = (isset($arr3[$a2['value']]) ? $arr3[$a2['value']] : null);
    84. }
    85.  
    86. var_dump($mix); 
     
  17. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Спасибо большое.

    Еще у $mix[$a2['group']]['params'][$a2['title']] нужно добавить [] иначе у параметра всегда будет только одно значение.

    сложны для меня все это манипуляции с массивами. никак не могу въехать в них нормально :|
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Потому что ты что-то намудрил при проектировании. Но задумка была правильная.
     
  19. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Скорее всего намудрил)

    суть такая
    Группы не обязательны и делаю только некую категоризацию параметров, если те однотипные. Т.е. параметры схожие по сути своей.
    но как заметил [vs], то проще создать "специальные" группы и сними особо работать.

    так же Значения могут быть не привязаны к параметрам(не учел этого кстати в массиве, попробую как-то сам доделать). Т.е. значение может быть одиночным и не состоять в каком либо параметре и группе.
    Возможно я сильно тут загибаю с настройками этого всего...
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Почему у тебя всё отдельно?
     
  21. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Изначально были значения
    Потом пришлось из-за их количества объединить в параметры.
    Далее, некоторые параметры уже повязать в группы.
    А некоторые параметры и значения остались без связей, так как их не мало. Раскидывать их по каким-то группам и параметрам не подходит.

    Добавлено спустя 34 минуты 56 секунд:
    Хм. А можно как-то все значения массивов получить в конечном массиве?

    Из БД вытягиваю много разных данных. В реале массивы содержать не только ID и названия, но и кучи других данных.
    Сейчас жестко только ID и названия.
    Там группы содержат статусы, параметры ряд других необходимых данных.
     
  22. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Изменил немного
    Код (Text):
    1. // МАССИВ 1 - ГРУППЫ
    2. $arr1 = array(
    3.     array(
    4.         'group_id' => '1',
    5.         'group_title' => 'Группа 1',
    6.         'group_desc' => 'Описание группы 1',
    7.         'group_img' => 'img1.gif',
    8.     ),
    9.     array(
    10.         'group_id' => '2',
    11.         'group_title' => 'Группа 2',
    12.         'group_desc' => 'Описание группы 2',
    13.         'group_img' => 'img2.gif',
    14.     ),
    15. );
    16.  
    17. // МАССИВ 2 - ПАРАМЕТРЫ
    18. $arr2 = array(
    19.     array(
    20.         'group' => '0',
    21.         'title' => 'Параметр 1',
    22.         'value' => '1',
    23.     ),
    24.     array(
    25.         'group' => '2',
    26.         'title' => 'Параметр 2',
    27.         'value' => '4',
    28.     ),
    29.     array(
    30.         'group' => '2',
    31.         'title' => 'Параметр 3',
    32.         'value' => '6',
    33.     ),
    34.     array(
    35.         'group' => '1',
    36.         'title' => 'Параметр 3',
    37.         'value' => '7',
    38.     ),
    39.     array(
    40.         'group' => '1',
    41.         'title' => 'Параметр 2',
    42.         'value' => '8',
    43.     ),
    44. );
    45.  
    46. // МАССИВ 3 - ЗНАЧЕНИЯ
    47. $arr3 = array(
    48.     array(
    49.         'value_id' => '1',
    50.         'value_title' => 'Значение 1',
    51.     ),
    52.     array(
    53.         'value_id' => '4',
    54.         'value_title' => 'Значение 2',
    55.     ),
    56.     array(
    57.         'value_id' => '6',
    58.         'value_title' => 'Значение 6',
    59.     ),
    60.     array(
    61.         'value_id' => '7',
    62.         'value_title' => 'Значение 7',
    63.     ),
    64.     array(
    65.         'value_id' => '8',
    66.         'value_title' => 'Значение 8',
    67.     ),
    68. );
    69.  
    70. //arr1
    71. $a = array();
    72. foreach ($arr1 as $value)
    73. {
    74.     $a[$value['group_id']] = $value;
    75. }
    76. $arr1 = $a;
    77. unset($a);
    78.  
    79. //arr3
    80. $a = array();
    81. foreach ($arr3 as $value)
    82. {
    83.     $a[$value['value_id']] = $value;
    84. }
    85. $arr3 = $a;
    86. unset($a);
    87.  
    88. //собираем
    89. $mix = array();
    90. foreach ($arr2 as $a2)
    91. {
    92.     if (!isset($mix[$a2['group']]))
    93.     {
    94.         $mix[$a2['group']] = (isset($arr1[$a2['group']]) ? $arr1[$a2['group']] : null);
    95.     }
    96.     $mix[$a2['group']]['params'][$a2['title']][] = (isset($arr3[$a2['value']]) ? $arr3[$a2['value']] : null);
    97. }
    98.  
    99. print_r($mix);
    Сейчас в результате даёт массив
    Код (Text):
    1.     [1] => Array
    2.         (
    3.             [group_id] => 1
    4.             [group_title] => Группа 1
    5.             [group_desc] => Описание группы 1
    6.             [group_img] => img1.gif
    7.             [params] => Array
    8.                 (
    9.                     [Параметр 3] => Array
    10.                         (
    11.                             [0] => Array
    12.                                 (
    13.                                     [value_id] => 7
    14.                                     [value_title] => Значение 7
    15.                                 )
    16.  
    17.                         )
    18.  
    19.                     [Параметр 2] => Array
    20.                         (
    21.                             [0] => Array
    22.                                 (
    23.                                     [value_id] => 8
    24.                                     [value_title] => Значение 8
    25.                                 )
    26.  
    27.                         )
    28.  
    29.                 )
    30.  
    31.         )
    А хотелось более удобный, типа
    Код (Text):
    1. [1] => Array
    2.     (
    3.         [group_id] => 1
    4.         [group_title] => Группа 1
    5.         [group_desc] => Описание группы 1
    6.         [group_img] => img1.gif
    7.         [params] => Array
    8.         (
    9.             [0] => Array
    10.             (
    11.                 [group] => 1
    12.                 [title] => Параметр 3
    13.                 [values] => Array
    14.                 (
    15.                     [0] => Array
    16.                     (
    17.                         [value_id] => 7
    18.                         [value_title] => Значение 7
    19.                     )
    20.                     [0] => Array
    21.                     (
    22.                         [value_id] => 1
    23.                         [value_title] => Значение 1
    24.                     )
    25.                 )
    26.             )
    27.             [1] => Array
    28.             (
    29.                 [group] => 1
    30.                 [title] => Параметр 2
    31.                 [values] => Array
    32.                 (
    33.                     [0] => Array
    34.                     (
    35.                         [value_id] => 8
    36.                         [value_title] => Значение 8
    37.                     )
    38.                 )
    39.             )
    40.         )
    41.     )
    Т.е. чтобы массив params содержал в себе данные параметра и массив values со всеми его значениями.
    и сохранить сортировку из базы.
     
  23. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    А как-то можно отсортировать все в конечном массиве по тому, как отсортировано в БД?
    у меня все имеет сортировку, и группы и параметры и значения.
    Как понял, то тут поможет что-то типа uasort? но не понял как с этой функцией работать.
     
  24. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В разделе "Решения и алгоритмы" есть топик про сортировку массива а-ля таблицы с помощью ORDER BY