[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Группировка массива
MailRes
Всем привет!

Есть вот такой массив:
Array (
[0] => Array ( [type] => Овощи [name] => Помидор [sort] => Сорт 1 )
[1] => Array ( [type] => Овощи [name] => Огурец [sort] => Сорт 1 )
[2] => Array ( [type] => Овощи [name] => Огурец [sort] => Сорт 2 )
[3] => Array ( [type] => Фрукты [name] => Яблоко [sort] => Сорт 1 )
[4] => Array ( [type] => Фрукты [name] => Бананы [sort] => Сорт 1 )
[5] => Array ( [type] => Фрукты [name] => Бананы [sort] => Сорт 2 )
[6] => Array ( [type] => Фрукты [name] => Бананы [sort] => Сорт 3)
)


Хочу сделать "конструктор", в котором сначала выбирается сначала "type", затем в зависимости от него становятся доступны значения "name", а затем соответственно "sort".
Выборку делаю с помощью формы с трёх полей <select> под каждый ключ массива.

Как сделать это "правильно"? С помощью foreach? Нагородил с помощь if и for, но хочу сделать правильно, подскажите как.

Спасибо
MailRes
Переписал кусок кода с foreach, код выглядит дружелюбнее smile.gif
Но всё равно есть над чем поработать и как упростить
Valick
MailRes, попробуйте отпилить 73 строки с конца, по идее код должен стать проще.


_____________
Стимулятор ~yoomoney - 41001303250491
Kusss
а не проще массив немного по другому сделать
$array['type']['name'][] = ['sort'];
array (
'Овощи' => array (
'Помидор' => array (
0=>'Сорт 1'
)
'Огурец' => array (
0=>'Сорт 1',
1=>'Сорт 2'
)
),

'Фрукты' => array (
'Яблоко' => array (
0=>'Сорт 1'
)
'Бананы' => array (
0=>'Сорт 1',
1=>'Сорт 2',
1=>'Сорт 3'
)
)
MailRes
Valick, само собой, будет одна простота smile.gif
Kusss, спасибо, попробую! С массивами я на "Вы", работаю редко с ними, но хочу научиться делать элементарные вещи (как мне кажется в моём случае) правильно, а не изобретать велосипед. smile.gif Искать значения в таком массиве лучше через foreach?
MailRes
Kusss, как в такой массив записать значения?

При такой записи бред же получится)))

$array[0]="Овощи";
$array['name'][0]="Помидор";
$array['type']['name'][0]="Сорт 1";


И вот такого результата не будет:

array (
'Овощи' => array (
'Помидор' => array (
0=>'Сорт 1'
)
))

Kusss
я любой массив через foreach перебираю.
а искать в массиве нужно другими методами. смотри - документацию
Kusss
Kusss, как в такой массив записать значения?
$array["Овощи"]["Помидор"][] = "Сорт 1";

ты лучше напиши как это массив собираешь.
И вообще нужен ли тебе массив, может сразу готовый результат выдать ?
да ещё важно что ты дальше будет делать . Потому как если просто вывести - это одно. А вот если нужно отметить товары и дальше с ними работать - совсем другое.
MailRes
Kusss, спасибо! Прояснились некоторые моменты.
Valick
MailRes, вы бы не начинали "жизнь с середины", а подробнее бы рассказали с самого начала, что, а главное зачем вы делаете. Возможно вы изначально пошли не по правильному пути, а теперь пытаетесь как-то прилепить так называемые "костыли".
Ну и естественно спрашивая про код, показывайте его не стесняйтесь smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
MailRes
Valick, показать код не стесняюсь, но не выкладываю т.к. по бОльшей части хочется самому разобраться и понять, а не постить сообщения вида "напишите за меня скрипт" smile.gif

Сейчас пишу "демо-версию", в дальнейшем буду переделывать и обязательно появятся новые вопросы...

Всем спасибо за участие smile.gif
Kusss
зря ты так думаешь. тебе хотят показать и объяснить как нужно/не нужно делать, а не проходить/ехать по целине там, где параллельно шоссе есть smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.