如果一个数组的元素在另一个数组中找到,则将其删除

2022-08-30 08:51:25

可能的重复:
如果项目存在于“不允许的单词”数组中,则从数组中删除该项目

我有一个客户端将发送的动态字符串,我想从中创建逗号分隔的标签:

$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$tagsarray_rand


答案 1

您正在寻找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);

查看实际效果


答案 2

对于array_diff()来说,这听起来像是一项轻松的工作。

array array_diff ( array $array1 , array $array2 [, array $... ] )

与差值进行比较并返回差值。array1array2

这基本上意味着它将在去除中存在的所有值后返回。array1array2