Первого таймера здесь, я надеюсь, что объяснить это достаточно хорошо ...PHP/Smarty - Как проверить массив для объектов с определенными значениями, и создать временный массив этих объектов
PHP/Smarty, я m работает над разделом страницы, на котором отображаются списки маркеров заметок, связанных либо с общей страницей, либо с отдельными местами на этой странице. В некоторых местах нет заметок. Что-то вроде:
Общие
- примечание 1
Нью-Йорк
- примечание 2
- примечание 3
Boston
- примечание 4
У меня есть два массива, присвоенных .TPL я работаю и населённый класс UI: $ место и $ нота
$ places содержит предметы, каждый из которых уникален place_id
$ примечания содержит однозначно определены объекты нотные, каждый из которых может или не может быть place_id как один из атрибутов
вот что я имею в виду:
{if (**ANY NOTES EXIST IN $notes WITH NO place_id**)}
<ul id="list-general">
<h4>General</h4>
{foreach from=**[NOTES WITH NO place_id]** item=note}
<li id="note-{$note->get_id()}">$note->get_text()</li>
{/foreach}
</ul>
{else}
<ul id="list-general" class="hide">
<h4>General</h4>
</ul>
{/if}
{foreach from=$places item=place}
{assign var=curr_place_id value=$place->get_id()}
{if (**ANY NOTES EXIST IN $notes WHERE place_id == $curr_place_id**)}
<ul id="list-{$curr_place_id}">
<h4>{$place->get_name()}</h4>
{foreach from=**[NOTES WHERE place_id == $curr_place_id]** item=note}
<li id="note-{$note->get_id()}">$note->get_text()</li>
{/foreach}
</ul>
{else}
<ul id="list-{$curr_place_id}" class="hide">
<h4>{$place->get_name()}</h4>
</ul>
{/if}
{/foreach}
Я довольно новыми для все это, и мне сложно с деталями в CAPS ... так что мой вопрос: как лучше всего оценить атрибуты объектов в двух разных массивах и, возможно, создать временные массивы которые содержат только те примечания, которые мне нужны.
(В случае, если вам интересно, я создаю скрытые узлы, так что я могу получить доступ к ним через яваскрипт и не придется беспокоиться о заказе)
спасибо kander, имеет смысл. Я дам ему выстрел сегодня утром. – byron
работает как шарм. FYI, я использовал foreach в PHP вместо arrayfilter. Просто не смог заставить arrayfilter работать. большое спасибо за вашу помощь. – byron
Добро пожаловать :) – kander