$ar = [
[
'Message_ID' => 1,
'Title' => 'Пушкино',
'Morphy' => 'Пушкино', // игрушки в Пушкино
'Term' => 'пушкино', // слова которые могу встретиться в utm_term
],[
'Message_ID' => 2,
'Title' => 'Броницы',
'Morphy' => 'Броницах', // игрушки в Броницах
'Term' => 'броницы,броницах', // слова которые могу встретиться в utm_term
],[
'Message_ID' => 3,
'Title' => 'Воскресенск',
'Morphy' => 'Воскресенске', // игрушки в Воскресенске
'Term' => 'воскресенск,воскресенске', // слова которые могу встретиться в utm_term
]
];
$UtmTerm = 'Игрушки в городе Пушкино';
$UtmTerm = mb_strtolower($UtmTerm);
$UtmTermArray = explode(" ", $UtmTerm);
$keys = [];
foreach($ar as $k => $v) {
$res = array_intersect(explode(",", $v['Term']), $UtmTermArray);
if (!empty($res)) {
$keys[] = $k;
}
}
var_dump($keys); // ключи массивов в которых найдены совпадения в Term
Или сразу получить массив Morphy:
// ...
$results = [];
foreach($ar as $k => $v) {
$res = array_intersect(explode(",", $v['Term']), $UtmTermArray);
if (!empty($res)) {
$results[] = $v['Morphy'];
}
}
var_dump($results);
Насчет подхода, лучше вынести такую выборку в БД. Если нет, то обеспечить переиспользование кода.
ЗЫ
Добавляйте в вопрос сразу код и данные в таком состоянии, чтобы можно было просто скопировать и запустить.