За последние 24 часа нас посетили 22100 программистов и 1161 робот. Сейчас ищет 361 программист ...

Помогите пожалуйста!

Тема в разделе "Сделайте за меня", создана пользователем Lol lil lol, 19 янв 2021.

  1. Lol lil lol

    Lol lil lol Новичок

    С нами с:
    19 янв 2021
    Сообщения:
    2
    Симпатии:
    0
    Вы делаете страницу каталога handmade товаров. Основные данные в каталоге - это мастера и их товары. Количество мастеров и товаров не ограничено. Но вы точно знаете, что каждый товар изготавливает только один мастер.
    Вам необходимо создать...

    Вы делаете страницу каталога handmade товаров. Основные данные в каталоге - это мастера и их товары. Количество мастеров и товаров не ограничено. Но вы точно знаете, что каждый товар изготавливает только один мастер.

    Вам необходимо создать единственный массив $data, и придумать его структуру таким образом, чтобы можно было удобно хранить информацию по мастерам и их товарам.

    Для товара нужно хранить следующую информацию: Наименование товара, Цена, Мастер
    О мастере нужно хранить следующую информацию о нем: Никнейм, Город, Доставка (Да/Нет)
    Учтите, что набор полей в будущем может расширяться.

    Заполните этот массив следующими данными

    Мастера

    Никнейм Город Доставка
    Nick Москва Да
    Чебурашка Челябинск Нет
     

    Вложения:

  2. Grigoriy Kozheletov

    Grigoriy Kozheletov Новичок

    С нами с:
    2 сен 2020
    Сообщения:
    13
    Симпатии:
    5
    Адрес:
    г. Раменское, Московская область
    Может быть как-то так:
    PHP:
    1. <?php
    2.  
    3. $data = [
    4.     'Мастера' => [
    5.         [
    6.             'Никнейм'  => 'Nick',
    7.             'Город'    => 'Москва',
    8.             'Доставка' => 'Да'
    9.         ],
    10.         [
    11.             'Никнейм'  => 'Чебурашка',
    12.             'Город'    => 'Челябинск',
    13.             'Доставка' => 'Нет'
    14.         ],
    15.         [
    16.             'Никнейм'  => 'Black',
    17.             'Город'    => 'Казань',
    18.             'Доставка' => 'Нет'
    19.         ]
    20.     ],
    21.     'Товары'  => [
    22.         [
    23.             'Наименование' => 'Бетон',
    24.             'Цена'         => 100,
    25.             'Мастер'       => 'Nick'
    26.         ],
    27.         [
    28.             'Наименование' => 'Герб',
    29.             'Цена'         => 150,
    30.             'Мастер'       => 'Nick'
    31.         ],
    32.         [
    33.             'Наименование' => 'Квадрат',
    34.             'Цена'         => 799,
    35.             'Мастер'       => 'Black'
    36.         ]
    37.     ]
    38. ];
    39.  
    40. ?>
    41.  
    42. <!doctype html>
    43. <html>
    44. <head>
    45.     <title>Document</title>
    46. </head>
    47. <body>
    48. <?php foreach ($data as $key => $datum): ?>
    49.     <h2><?= $key ?></h2>
    50.     <?php $headers = array_keys($datum[0]); ?>
    51.     <table>
    52.         <tr>
    53.             <?php foreach ($headers as $header): ?>
    54.                 <th><?= $header ?></th>
    55.             <?php endforeach; ?>
    56.         </tr>
    57.         <?php foreach ($datum as $item): ?>
    58.             <tr>
    59.                 <?php foreach ($item as $value): ?>
    60.                     <td><?= $value ?></td>
    61.                 <?php endforeach; ?>
    62.             </tr>
    63.         <?php endforeach; ?>
    64.     </table>
    65. <?php endforeach; ?>
    66. </body>
    67. </html>
     
  3. GoldenFILL

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

    С нами с:
    16 мар 2017
    Сообщения:
    20
    Симпатии:
    1
    Адрес:
    Россия, Республика Крым, Симферополь
    Возможно как то так ...

    PHP:
    1. /** Это шаблон для ясности. В таком виде его не стоит объявлять
    2. * Так будет достаточно
    3. * $data = [];
    4. */
    5. $data['nick'] = [
    6.     'sity' => '',
    7.     'dostavka' => '',
    8.     'tovars' => [
    9.         'tovar_name' => '',
    10.         'tovar_prise' => '',
    11.     ]
    12. ];
    13.  
    14.  
    15. function exists_master($nick, $test_exists = false){
    16.     return $test_exists;
    17. }
    18. function add_master($nick, $sity, $dostavka){
    19.     global $data;
    20.     if(!exists_master($nick)){
    21.         $tovar = [];
    22.         $data[$nick]['sity'] = $sity;
    23.         $data[$nick]['dostavka'] = $dostavka;
    24.         $data[$nick]['tovars'] = [];
    25.     }
    26. }
    27.  
    28. function add_tovar($nick, $name, $prise){
    29.     global $data;
    30.     if(exists_master($nick, true)){
    31.         $data[$nick]['tovars'] = ['tovar_name' => $name, 'tovar_prise' => $prise];
    32.     } else {
    33.         echo 'Мастер отключен в связи с прошедшими праздниками или находится еще там - в празднике';
    34.     }
    35. }
    36.  
    37. add_master('Master_nick', "Minsk", "Да");
    38. add_tovar('Master_nick', "Рога", "100.00");
    39. add_tovar('Master_nick', "Копыта", "25.00");
    Для выполнения задачи стоит еще проверить наличие товара у других мастеров, но это уже как бы входит в смысл этой концепции, посему я не стал заморачиваться с этой проверкой.
     
    #3 GoldenFILL, 23 янв 2021
    Последнее редактирование: 23 янв 2021
  4. GoldenFILL

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

    С нами с:
    16 мар 2017
    Сообщения:
    20
    Симпатии:
    1
    Адрес:
    Россия, Республика Крым, Симферополь
    писал на коленке, посему немного заумничался.
    список товаров наверное корректней будет сформировать таким образом:
    Заменить 31 строчку на такой код:
    PHP:
    1. $data[$nick]['tovars'][$name] = $prise;