Я пытаюсь разработать функцию php для поиска по ссылке на странице терминов, а затем выполнить функцию, основываясь на существовании этих терминов.
Создание базового кода не было проблемой, но с довольно большим количеством слов и необязательных действий сценарий становится довольно длинным, используя отдельные строки для каждой группы слов / функции. Основная концепция кода ниже. Функции stripos расположены в обратном порядке предпочтения, поэтому, если появятся два или более терминов, самые важные из них будут последними и превзойдут предыдущие
(я думаю, что, возможно, есть способ выйти из сценария после выполнения первого условия, но мои эксперименты с выходом не увенчались успехом, поэтому я просто использовал обратную последовательность) .
group1 = array("word1","word2","word3","word4","word5");
group2 = array("word6","word7","word8");
group3 ... etc
foreach($group1 as $groupa) { if(stripos($string, $groupa) !== false) { do something A; } }
foreach($group2 as $groupb) { if(stripos($string, $groupb) !== false) { do something B; } }
foreach ... etc
Есть ли способ использовать двумерный массив или два массива, один со словами, а другой с действием? то есть:
words = array("word1","word2","word3","word4","word5","word6","word7","word8")
actions = array("something A","something A","something A","something A","something A","something B","something B","something B")
foreach($words as $word) { if(stripos($string, $word) !== false) { do actions; } }
...... ОБНОВЛЕНО ......
Вдохновленный предложением Филлипса, мы получили многомерный массив и затем пошагово прошли по его «строкам». Теперь работаем над извлечением массива из MySQL, а не записываем его в код.
$terms = array(
array( "word" => "word1",
"cat" => "dstn",
"value" => "XXXX"
),
..etc
..etc
);
foreach ($terms as $i => $row)
{ if(stripos($refstring3, $row['word']) !== false) { $$row['cat'] = $row['value']; } }
...... ОБНОВЛЕНО ......
Он превратился в простой запрос MySQL с последующим оператором while, а не foreach. Работает как шарм, благодаря отзывам и различным другим постам на Stackoverflow.
Спасибо всем.
Это место отлично подходит для изучения и понимания, посты переходят прямо к сути вещей и пропускают необходимость поиска по многочисленным связанным, но неприменимым учебникам.