Как проверить наличие параметра в массиве массивов, на точное соответствие? [РЕШЕНО]
Добрый день!
Подскажите пожалуйста, как проверить наличие параметра в массиве, на точное соответствие?
Пример:
Как проверить на точное соответствие $term с ключом из массива $row.keys?
in list и in keys вообще ничего не выводят.
Подскажите пожалуйста, как проверить наличие параметра в массиве, на точное соответствие?
Пример:
{set $term = 'Промышленные полы'}
{set $rows = json_decode($_modx->resource.utm_param, true)}
В $rows массив из MIGX: Array
(
[0] => Array
(
[MIGX_id] => 1
[keys] => Промышленные полы,
Промышленные бетонные полы,
Производственные полы
[title] => Промышленные полы для бизнеса
)
[1] => Array
(
[MIGX_id] => 2
[keys] => Топпинг пол,
Топпинговый пол,
Армированный пол,
Армированная стяжка,
Упрочненные полы
[title] => Упрочненный армированный пол с топпингом
)
[2] => Array
(
[MIGX_id] => 3
[keys] => Бетонные Полы,
Бетонный Пол В Гараже,
Бетонная Стяжка Пола,
Устройство Бетонных Полов
[title] => Укладка бетонной стяжки пола
)
)
Если проверяю вот так:{foreach $rows as $row}
{if ($term in $row.keys)}
{$row.title}
{/if}
{/foreach}
То скрипт отрабатывает даже если в $term будет просто слово «полы» и соответственно будет несколько ответов на выходе, т.к. в массиве в нескольких ключах есть «полы».Как проверить на точное соответствие $term с ключом из массива $row.keys?
in list и in keys вообще ничего не выводят.
Поблагодарить автора
Отправить деньги
Комментарии: 1
Спасибо @Баха Волков за помощь.
Может кому пригодится:
Может кому пригодится:
{foreach $rows as $row}
{set $tmp = $row.keys | split : ', '}
{if $term in list $tmp}
{set $result = $row.title}
{break}
{/if}
{/foreach}
{$result ?: 'Ни одного с...ка соответствия'}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.