За последние 24 часа нас посетили 72617 программистов и 3032 робота. Сейчас ищут 1470 программистов ...

Как собрать такой массив

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 13 июн 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Вот есть у меня такой массив он переобразован из строки функцией explode

    PHP:
    1. (
    2.     [0] => Toyota FJ Cruiser
    3.     [1] => 34120
    4.     [2] =>FJ Cruiser 2006
    5.     [3] => 3412010
    6.     [4] =>Двигатель
    7.     [5] => 341201010
    8.     [6] =>Кузов внутри
    9.     [7] =>  341201015
    10.     [8] =>Кузов наружные элементы
    11.     [9] =>  341201020
    12.     [10] =>Кузовные стёкла
    13.     [11] => 341201025
    14.     [12] =>Оптика
    15.     [13] =>  341201030
    16.     [14] =>Пневматическая система
    17.     [15] =>  341201035
    18.     [16] =>Подвеска двигателя / КПП
    19.     [17] =>  341201040
    20.     [18] =>Подвеска задних колёс
    21.     [19] =>  341201045
    22.     [20] =>Подвеска передних колёс
    23.     [21] =>  341201050
    24.     [22] =>Рулевое управление
    25.     [23] =>  341201055
    26.     [24] =>Система выпуска отработанных газов
    27.     [25] => 341201060
    28.     [26] =>Система кондиционирования
    29.     [27] =>  341201065
    30.     [28] =>Система охлаждения
    31.     [29] =>  341201070
    32.     [30] =>Тормозная система
    33.     [31] =>  341201075
    34.     [32] =>Трансмиссия
    35.     [33] =>  341201080
    36.     [34] =>Электрооснащение
    37.     [35] =>  341201085
    38.     [36] =>Шины / Диски
    39.     [37] =>  341201090
    40.     [38] =>\\
    41.     [39] =>FJ Cruiser 2006
    42.     [40] => 3412010
    43.     [41] =>Двигатель
    44.     [42] => 341201010
    45.     [43] =>Кузов внутри
    46.     [44] =>  341201015
    47.     [45] =>Кузов наружные элементы
    48.     [46] =>  341201020
    49.     [47] =>Кузовные стёкла
    50.     [48] => 341201025
    51.     [49] =>Оптика
    52.     [50] =>  341201030
    53.     [51] =>Пневматическая система
    54.     [52] =>  341201035
    55.     [53] =>Подвеска двигателя / КПП
    56.     [54] =>  341201040
    57.     [55] =>Подвеска задних колёс
    58.     [56] =>  341201045
    59.     [57] =>Подвеска передних колёс
    60.     [58] =>  341201050
    61.     [59] =>Рулевое управление
    62.     [60] =>  341201055
    63.     [61] =>Система выпуска отработанных газов
    64.     [62] => 341201060
    65.     [63] =>Система кондиционирования
    66.     [64] =>  341201065
    67.     [65] =>Система охлаждения
    68.     [66] =>  341201070
    69.     [67] =>Тормозная система
    70.     [68] =>  341201075
    71.     [69] =>Трансмиссия
    72.     [70] =>  341201080
    73.     [71] =>Электрооснащение
    74.     [72] =>  341201085
    75.     [73] =>Шины / Диски
    76.     [74] =>  341201090
    77.     [75] =>)
    как мне с него сделать вот такой?
    PHP:
    1.     array(
    2.         'name' => 'Toyota FJ Cruiser ',
    3.         'sort' =>'34100',
    4.         'cars' => array(
    5.             array(
    6.                 'name' => 'FJ Cruiser ',
    7.                 'sort' => '3410010',
    8.                 'attr' =>array(
    9.                     array(
    10.                         'name' => 'Двигатель ',
    11.                         'sort' => '341001010',
    12.                     ),
    13.                     array(
    14.                         'name' => ' Кузов внутри ',
    15.                         'sort' => '341001015',
    16.                     ),
    17.                     array(
    18.                         'name' => 'Пневматическая система  ',
    19.                         'sort' => '341001035',
    20.                     ),
    21.                     array(
    22.                         'name' => 'Подвеска двигателя / КПП  ',
    23.                         'sort' => '341001040',
    24.                     ),
    25.                     array(
    26.                         'name' => 'Подвеска задних колёс  ',
    27.                         'sort' => '341001045',
    28.                     ),
    29.                     array(
    30.                         'name' => 'Подвеска передних колёс  ',
    31.                         'sort' => '341001050',
    32.                     ),
    33.                     array(
    34.                         'name' => 'Рулевое управление',
    35.                         'sort' => '341001055',
    36.                     ),
    37.                     array(
    38.                         'name' => 'Система выпуска отработанных газов ',
    39.                         'sort' => '341001060',
    40.                     ),
    41.                     array(
    42.                         'name' => 'Система кондиционирования',
    43.                         'sort' => '341001065',
    44.                     ),
    45.                     array(
    46.                         'name' => 'Система охлаждения',
    47.                         'sort' => '341001070',
    48.                     ),
    49.                     array(
    50.                         'name' => ' Тормозная система ',
    51.                         'sort' => '341001075',
    52.                     ),
    53.                     array(
    54.                         'name' => 'Трансмиссия',
    55.                         'sort' => '341001080',
    56.                     ),
    57.                     array(
    58.                         'name' => 'Электрооснащение ',
    59.                         'sort' => '341001085',
    60.                     ),
    61.                     array(
    62.                         'name' => ' Шины / Диски ',
    63.                         'sort' => '341001090',
    64.                     ),
    65.                 ),
    66.             ),
    67.             array(
    68.                 'name' => 'FJ Cruiser 2006  ',
    69.                 'sort' => '3410010',
    70.                 'attr' =>array(
    71.                     array(
    72.                         'name' => 'Двигатель ',
    73.                         'sort' => '341001010',
    74.                     ),
    75.                     array(
    76.                         'name' => ' Кузов внутри ',
    77.                         'sort' => '341001015',
    78.                     ),
    79.                     array(
    80.                         'name' => 'Пневматическая система  ',
    81.                         'sort' => '341001035',
    82.                     ),
    83.                     array(
    84.                         'name' => 'Подвеска двигателя / КПП  ',
    85.                         'sort' => '341001040',
    86.                     ),
    87.                     array(
    88.                         'name' => 'Подвеска задних колёс  ',
    89.                         'sort' => '341001045',
    90.                     ),
    91.                     array(
    92.                         'name' => 'Подвеска передних колёс  ',
    93.                         'sort' => '341001050',
    94.                     ),
    95.                     array(
    96.                         'name' => 'Рулевое управление',
    97.                         'sort' => '341001055',
    98.                     ),
    99.                     array(
    100.                         'name' => 'Система выпуска отработанных газов ',
    101.                         'sort' => '341001060',
    102.                     ),
    103.                     array(
    104.                         'name' => 'Система кондиционирования',
    105.                         'sort' => '341001065',
    106.                     ),
    107.                     array(
    108.                         'name' => 'Система охлаждения',
    109.                         'sort' => '341001070',
    110.                     ),
    111.                     array(
    112.                         'name' => ' Тормозная система ',
    113.                         'sort' => '341001075',
    114.                     ),
    115.                     array(
    116.                         'name' => 'Трансмиссия',
    117.                         'sort' => '341001080',
    118.                     ),
    119.                     array(
    120.                         'name' => 'Электрооснащение ',
    121.                         'sort' => '341001085',
    122.                     ),
    123.                     array(
    124.                         'name' => ' Шины / Диски ',
    125.                         'sort' => '341001090',
    126.                     ),
    127.                 ),
    128.             ),
    129.         ),
    130.     ),
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Наверное, никак, если количество элементов в каждой секции может быть разным.
    Исходная строка откуда пришла? Данные изначально в какой форме хранятся?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.822
    Симпатии:
    1.333
    Адрес:
    Лень
    'sort' =>'34100'
    откуда такой номер ?
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А, стоп, у вас там типа отсечение прописано в массиве? Тогда все проще. Пара вложенных циклов, которые отключаются, если элемент массива - "\\".
     
  5. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    массив это строка которую дает заказчик. Потом ее разбиваю по знаку |. Да это отсечение след массива