За последние 24 часа нас посетили 22964 программиста и 1240 роботов. Сейчас ищет 741 программист ...

Сложноватая задачка

Тема в разделе "Сделайте за меня", создана пользователем Альфредио, 26 окт 2021.

  1. Альфредио

    Альфредио Новичок

    С нами с:
    26 окт 2021
    Сообщения:
    9
    Симпатии:
    0
    Здравствуйте!
    Задали такую вот задачу.
    Я не понимаю как её решать. Если есть кто-то кто решит - буду вечно благодарен.
    Если есть кто-то кто сможет объяснить как решается буду благодарен не меньше.

    Получаем массив с определенными параметрами:

    PHP:
    1. <?php
    2. $api = new api();
    3. $api->set_type('list_items');
    4. $api->set_vars('parent', $id);
    5. $data = $api->get_data();
    6. ?>
    из полученного массива сформируйте карточку квартиры с помощью
    PHP+HTML:

    Код (Text):
    1. Array
    2. (
    3. [0] => Array
    4. (
    5. [id] => 49
    6. [dtmpl_data] => Array
    7. (
    8. [id] => 5
    9. [user_id] => 1
    10. [dtmpl_name] => Квартира
    11. [dtmpl_cname] => flat
    12. [dtmpl_type] => 3
    13. [status] => 1
    14. [fields] => Array
    15. (
    16. [section] => Array
    17. (
    18. [id] => 1
    19. [name] => Корпус
    20. [field_value] => 1
    21. )
    22. [rooms] => Array
    23. (
    24. [id] => 3
    25. [name] => Кол-во комнат
    26. [field_value] => 3
    27. )
    28. [living_area] => Array
    29. (
    30. [id] => 7
    31. [name] => Жилая площадь
    32. [cname] => living_area
    33. [field_value] => 66.86
    34. )
    35. [price] => Array
    36. (
    37. [id] => 16
    38. [field_value] => 5111355
    39. )
    40. )
    41. )
    42. )
    43. )
     
  2. alexphp

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

    С нами с:
    5 дек 2019
    Сообщения:
    98
    Симпатии:
    12
    А кто это задает такие задачи? Вы учитесь где-то, и вам это задали? Или это ентерпрайз, задача, возникшая в работе программиста в команде?
    Те, кто задает такие задачи, сами хоть понимают, что хотят в результате получить? Что они говорят? Что им конкретно надо? Что значит "сформируйте карточку квартиры"? Это как?
    Я лично понимаю, что в $data содержится массив, который показан ниже. Из этого массива, видимо, надо составить какую-то красивую табличку с помощью HTML. Но суть массива мало понятна. Что такое dtmpl_data? Что такое dtmpl_type? Почему массив section содержится внутри массива fields? И так далее.
     
  3. Альфредио

    Альфредио Новичок

    С нами с:
    26 окт 2021
    Сообщения:
    9
    Симпатии:
    0
    Эта задачка- вступительное испытание на курс по повышению квалификации. Вопросы задавать можно, но не такого характера
    Screenshot_20211026-220921_Comic Screen.jpg
    --- Добавлено ---
    У меня больше вопрос о том, зачем тут api и как с ним работать в данной конструкции
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Ни при чём.
    Надо лишь красиво (или не очень, раз уж CSS в задании не упомянут) оформить html-страничку, под названием "Карточка квартиры" с заданными в массиве значениями.
    Конечно-же, без констант, вписанных руками в html-разметку, а со значениями параметров квартиры, получаемыми PHP из массива.
     
  5. Альфредио

    Альфредио Новичок

    С нами с:
    26 окт 2021
    Сообщения:
    9
    Симпатии:
    0
    PHP:
    1. <?php
    2. $id = 49;
    3.  
    4. $api = new api();
    5. $api->set_type('list_items');
    6. $api->set_vars('parent', $id);
    7. $data = $api->get_data();
    8.  
    9. echo '<pre>';
    10. print_r($data);
    11. echo '</pre>';
    12.  
    13.  
    14.  
    15. class api
    16. {
    17. private $FloatsData = [
    18. '48' => [],
    19. '49' => [
    20. 'id' => 5,
    21. 'user_id' => 1,
    22. 'dtmpl_name' => 'Квартира',
    23. 'dtmpl_type' => 3,
    24. 'status' => 1,
    25. 'fields' => [
    26. 'section' => [ 'id' => 1, 'name' => 'Корпус', 'field_value' => 1, ],
    27. 'rooms' => [ 'id' => 3, 'name' => 'Кол-во комнат', 'field_value' => 3, ],
    28. 'living_area' => [ 'id' => 7, 'name' => 'Жилая площадь', 'cname' => 'living_area', 'field_value' => 66.86, ],
    29. 'price' => [ 'id' => 16, 'field_value' => 5111355, ]
    30. ]
    31. ],
    32. '50' => []
    33. ];
    34.  
    35. private $typeList = '';
    36. private $typeVar = '';
    37. private $floatNumber = -1;
    38.  
    39.  
    40. function __construct() {
    41. }
    42.  
    43.  
    44. function set_type($type) {
    45. $this->typeList = $type;
    46. }
    47.  
    48. function set_vars($type, $id) {
    49. $this->typeVar = $type;
    50. $this->floatNumber = $id;
    51. }
    52.  
    53. function get_data() {
    54. $return_data = [];
    55. switch ($this->typeList)
    56. {
    57. case 'list_items':
    58. {
    59. switch ($this->typeVar)
    60. {
    61. case 'parent':
    62. {
    63. foreach ($this->FloatsData as $floatNumber => $floatData) {
    64. if($this->floatNumber == $floatNumber) {
    65. $return_data[] = [
    66. 'id' => $floatNumber,
    67. 'dtmpl_data' => $floatData
    68. ];
    69. }
    70. }
    71. break;
    72. }
    73. default: break;
    74. }
    75. break;
    76. }
    77. default: break;
    78. }
    79. return $return_data;
    80. }
    81.  
    82.  
    83. }
    Собрал такое, но сам запутался... Как из этого можно вывести на html страничку?
     
  6. roboformation

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

    С нами с:
    30 авг 2020
    Сообщения:
    162
    Симпатии:
    40
    В задании сказано, что нужно класс объявлять? Если нет, то не пишите.
    @Альфредио, тебе уже написали, что нужно делать. Используй данные и верстай