Преобразование массива php в таблицу с помощью ветки

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

это массив

    Array ( 
     [0] => Array ( 
         [building_code] => 2C 
         [building_unit_id] => 57 
         [address] => Via monteverde 45 
         [name] => Andrea 
     ) 
     [1] => Array ( 
         [building_code] => 4E 
         [building_unit_id] => 55 
         [address] => Via monteverde 45 
         [name] => Andrea 
     ) 
    )

Это то, что я пробовал до сих пор

<table>
    <thead>
        <tr>

            {% for titolo in prova|keys %}

            <th>{{titolo}}</th>

            {% endfor %}

        </tr>
    </thead>
    <tbody>

        {% for sub_array in prova %}
        <tr>
            {% for value in sub_array %}
            <td>{{ value }}</th>
                {% endfor %}
        </tr>
        {% endfor %}
    </tbody>
</table>

Это результат

0   1
2C  57  Via monteverde 45   Andrea
4E  55  Via monteverde 45   Andrea

Вы пробовали что-нибудь до сих пор?

Qirel 28.07.2019 21:25

То, что вы описываете, звучит хорошо. Следующим шагом для вас будет взглянуть на документацию инструмента, который вы хотите использовать. И, возможно, несколько примеров вы можете найти в Интернете. И тогда вы начинаете.

arkascha 28.07.2019 21:26

Вы хотите использовать ключи массива в качестве заголовков столбцов?

Vinay Patil 28.07.2019 21:27

Привет @VinayPatil да, это то, что я хочу

pippo 28.07.2019 21:29

возможный дубликат stackoverflow.com/q/51910401/1483629

Vinay Patil 28.07.2019 21:32

Привет @VinayPatil да, я наткнулся на этот пост, и это то, что я пробовал. Я отредактировал вопрос с тем, что я пробовал, а также с результатом, который я получил

pippo 28.07.2019 21:33

Привет @Qirel, я отредактировал вопрос, чтобы объяснить, что я пробовал.

pippo 28.07.2019 21:34

Я не совсем знаком с веткой, но вместо этого попробуйте зациклить {% for titolo in prova.0|keys %}. Вам нужно получить первый элемент, а затем зациклить его ключи (а не ключи внешнего массива).

Qirel 28.07.2019 21:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
109
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете сделать что-то подобное, выбрав ключи первого массива prova

<table>
    <thead>
        <tr>
            {% for titolo in prova.0|keys %}
                <th>{{titolo}}</th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for sub_array in prova %}
            <tr>
                {% for value in sub_array %}
                    <td>{{ value }}</th>
                {% endfor %}
            </tr>
        {% endfor %}
    </tbody>
</table>
Ответ принят как подходящий

Ваша проблема в том, что ключи, которые вы хотите использовать в качестве заголовков, существуют как ключи в массиве второй глубины, а не в первичном массиве. Это означает, что вам нужно зациклить эти ключи вместо ключей в первом массиве.

Использование prova.0 для получения первого элемента приведет к тому, что keys будет подмассивом, который вы затем можете зациклить, как и раньше.

{% for titolo in prova|first|keys %}
    <th>{{titolo}}</th>
{% endfor %}

Привет @Qirel большое спасибо, это работает, принял ваш ответ, потому что вы также объяснили, почему мой код не работает, и я узнал кое-что, что знал благодаря вам

pippo 28.07.2019 21:48

Однако рассмотрите возможность использования prova | first | keys вместо prova.0 | keys.

DarkBee 29.07.2019 06:11

На самом деле у меня это было первым, но я не был уверен, что вы можете сделать это таким образом, поэтому я отредактировал его так, как я знал, будет работать - я не очень хорошо знаком с twig. Приятно знать, что prova|first|keys тоже сработает!

Qirel 29.07.2019 06:37

Да, безопаснее использовать как ключ 0, возможно, его не существует.

DarkBee 29.07.2019 07:22

Вы абсолютно правы, я просто не был на 100% уверен, разрешен ли такой синтаксис в twig :-) Спасибо, DarkBee!

Qirel 29.07.2019 07:23

Спасибо, ребята, я обнаружил, что документация twig плохо объясняет использование first или, может быть, это я не смог ее найти.

pippo 29.07.2019 09:18

Другие вопросы по теме