Возможный дубликат:
Удалить элемент из массива, если он существует в массиве «запрещенных слов»
У меня есть динамическая строка, которую отправят клиенты, и я хочу создать теги с разделителями-запятыми:
$subject = "Warmly little in before cousin as sussex and an entire set Blessing it ladyship."; print_r($tags = explode(" ", strtolower($subject)));
И все же я хочу удалить определенную группу слов (например, определенные статьи), но я хочу удалить ключ и значение этого слова, если он находится в разнесенном массиве:
$definite_articles = array('the','this','then','there','from','for','to','as','and','or','is','was','be','can','could','would','isn\'t','wasn\'t', 'until','should','give','has','have','are','some','it','in','if','so','of','on','at','an','who','what','when','where','why','we','been','maybe','further');
Если одно из этих слов в массиве $definite_article
definit_article находится в массиве $tags
удалите ключ и значение этого слова, и новый массив будет вынимать эти слова. Я буду использовать этот массив array_rand
чтобы выбрать из него случайную группу слов. Я пробовал много вещей для достижения своего результата, но пока ничего. Может ли кто-нибудь помочь мне найти решение?
Вы ищете array_diff
:
$subject = "Warmly little in before cousin as sussex..."; $tags = explode(" ", strtolower($subject)); $definite_articles = array('the','this','then','there','from','for','to','as'); $tags = array_diff($tags, $definite_articles); print_r($tags);
Смотрите в действии .
Звучит как простая задача для array_diff()
.
array array_diff ( array $array1 , array $array2 [, array $... ] )
Сравнивает
array1
сarray2
и возвращает разницу.
Что в основном означает, что он вернет array1
после того, как будет лишен всех значений, которые существуют в array2
.