Вы делаете страницу каталога handmade товаров. Основные данные в каталоге - это мастера и их товары. Количество мастеров и товаров не ограничено. Но вы точно знаете, что каждый товар изготавливает только один мастер. Вам необходимо создать... Вы делаете страницу каталога handmade товаров. Основные данные в каталоге - это мастера и их товары. Количество мастеров и товаров не ограничено. Но вы точно знаете, что каждый товар изготавливает только один мастер. Вам необходимо создать единственный массив $data, и придумать его структуру таким образом, чтобы можно было удобно хранить информацию по мастерам и их товарам. Для товара нужно хранить следующую информацию: Наименование товара, Цена, Мастер О мастере нужно хранить следующую информацию о нем: Никнейм, Город, Доставка (Да/Нет) Учтите, что набор полей в будущем может расширяться. Заполните этот массив следующими данными Мастера Никнейм Город Доставка Nick Москва Да Чебурашка Челябинск Нет
Может быть как-то так: PHP: <?php $data = [ 'Мастера' => [ [ 'Никнейм' => 'Nick', 'Город' => 'Москва', 'Доставка' => 'Да' ], [ 'Никнейм' => 'Чебурашка', 'Город' => 'Челябинск', 'Доставка' => 'Нет' ], [ 'Никнейм' => 'Black', 'Город' => 'Казань', 'Доставка' => 'Нет' ] ], 'Товары' => [ [ 'Наименование' => 'Бетон', 'Цена' => 100, 'Мастер' => 'Nick' ], [ 'Наименование' => 'Герб', 'Цена' => 150, 'Мастер' => 'Nick' ], [ 'Наименование' => 'Квадрат', 'Цена' => 799, 'Мастер' => 'Black' ] ] ]; ?> <!doctype html> <html> <head> <title>Document</title> </head> <body> <?php foreach ($data as $key => $datum): ?> <h2><?= $key ?></h2> <?php $headers = array_keys($datum[0]); ?> <table> <tr> <?php foreach ($headers as $header): ?> <th><?= $header ?></th> <?php endforeach; ?> </tr> <?php foreach ($datum as $item): ?> <tr> <?php foreach ($item as $value): ?> <td><?= $value ?></td> <?php endforeach; ?> </tr> <?php endforeach; ?> </table> <?php endforeach; ?> </body> </html>
Возможно как то так ... PHP: /** Это шаблон для ясности. В таком виде его не стоит объявлять * Так будет достаточно * $data = []; */ $data['nick'] = [ 'sity' => '', 'dostavka' => '', 'tovars' => [ 'tovar_name' => '', 'tovar_prise' => '', ] ]; function exists_master($nick, $test_exists = false){ return $test_exists; } function add_master($nick, $sity, $dostavka){ global $data; if(!exists_master($nick)){ $tovar = []; $data[$nick]['sity'] = $sity; $data[$nick]['dostavka'] = $dostavka; $data[$nick]['tovars'] = []; } } function add_tovar($nick, $name, $prise){ global $data; if(exists_master($nick, true)){ $data[$nick]['tovars'] = ['tovar_name' => $name, 'tovar_prise' => $prise]; } else { echo 'Мастер отключен в связи с прошедшими праздниками или находится еще там - в празднике'; } } add_master('Master_nick', "Minsk", "Да"); add_tovar('Master_nick', "Рога", "100.00"); add_tovar('Master_nick', "Копыта", "25.00"); Для выполнения задачи стоит еще проверить наличие товара у других мастеров, но это уже как бы входит в смысл этой концепции, посему я не стал заморачиваться с этой проверкой.
писал на коленке, посему немного заумничался. список товаров наверное корректней будет сформировать таким образом: Заменить 31 строчку на такой код: PHP: $data[$nick]['tovars'][$name] = $prise;