Как проверить наличие параметра в массиве массивов, на точное соответствие? [РЕШЕНО]

Добрый день!
Подскажите пожалуйста, как проверить наличие параметра в массиве, на точное соответствие?

Пример:
{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 вообще ничего не выводят.
Андрей Шевяков
14 ноября 2019, 14:26
modx.pro
728
0
Поблагодарить автора Отправить деньги

Комментарии: 1

Андрей Шевяков
14 ноября 2019, 19:45
1
+1
Спасибо @Баха Волков за помощь.

Может кому пригодится:

{foreach $rows as $row}
            {set $tmp = $row.keys | split : ', '}
            {if $term in list $tmp}
                {set $result = $row.title}
                {break}
            {/if}
{/foreach}
{$result ?: 'Ни одного с...ка соответствия'}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1