Привет, мне нужно создать таблицу с веткой из массива 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
То, что вы описываете, звучит хорошо. Следующим шагом для вас будет взглянуть на документацию инструмента, который вы хотите использовать. И, возможно, несколько примеров вы можете найти в Интернете. И тогда вы начинаете.
Вы хотите использовать ключи массива в качестве заголовков столбцов?
Привет @VinayPatil да, это то, что я хочу
возможный дубликат stackoverflow.com/q/51910401/1483629
Привет @VinayPatil да, я наткнулся на этот пост, и это то, что я пробовал. Я отредактировал вопрос с тем, что я пробовал, а также с результатом, который я получил
Привет @Qirel, я отредактировал вопрос, чтобы объяснить, что я пробовал.
Я не совсем знаком с веткой, но вместо этого попробуйте зациклить {% for titolo in prova.0|keys %}
. Вам нужно получить первый элемент, а затем зациклить его ключи (а не ключи внешнего массива).
Вы можете сделать что-то подобное, выбрав ключи первого массива 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 большое спасибо, это работает, принял ваш ответ, потому что вы также объяснили, почему мой код не работает, и я узнал кое-что, что знал благодаря вам
Однако рассмотрите возможность использования prova | first | keys
вместо prova.0 | keys
.
На самом деле у меня это было первым, но я не был уверен, что вы можете сделать это таким образом, поэтому я отредактировал его так, как я знал, будет работать - я не очень хорошо знаком с twig. Приятно знать, что prova|first|keys
тоже сработает!
Да, безопаснее использовать как ключ 0
, возможно, его не существует.
Вы абсолютно правы, я просто не был на 100% уверен, разрешен ли такой синтаксис в twig :-) Спасибо, DarkBee!
Спасибо, ребята, я обнаружил, что документация twig плохо объясняет использование first или, может быть, это я не смог ее найти.
Вы пробовали что-нибудь до сих пор?