当前位置: 首页 > 面试题库 >

如果项目存在于“不允许的单词”数组中,请从数组中删除

司马渝
2023-03-14
问题内容

我有一个数组:

Array
(
    [0] => tom
    [1] => and
    [2] => jerry
)

而且我还有一个不允许的单词数组:

Array
(
    [0] => and
    [1] => foo
    [2] => bar
)

我需要做的是删除第一个数组中也出现在第二个数组中的所有项目,例如,在这种情况下,键1将需要删除,因为“ and”在不允许的单词数组中。

现在,我现在有了这段代码,该代码对禁止的单词进行了foreach,然后使用array_search查找任何匹配项:

$arr=array('tom','and','jerry');
$disallowed_words=array('and','or','if');
foreach($disallowed_words as $key => $value) {
    $arr_key=array_search($value,$array);
    if($arr_key!='') {
        unset($search_terms[$arr_key]);
    }
}

现在,我知道这段代码很烂,我想知道的是,是否存在一种更有效的方法来从另一个数组中存在的数组中删除和项,尤其是如果它否定了使用foreach的话。

非常感谢,本


问题答案:

你要array_diff

array_diff返回一个数组,其中包含所有array1其他数组中不存在的所有条目。

所以你想要像这样的东西:

$good = array_diff($arr, $disallowed_words);


 类似资料:
  • 我似乎找不到解决这个问题的方法,你如何从基于数组的值的数组中删除项?就像你移除一个一样? 我需要删除一些s: 这将返回一个数组,但感觉有些不对劲。若要删除一个项目,那个就可以了,但通过ID数组从数组中删除项目,我不知道从哪里开始。 在循环中,我试图使用,但un定义在数组中:: 到目前为止,React表示在循环期间无法更新状态。基于,如何使一个项目处于状态?

  • 问题内容: 故事是,我应该能够将鲍勃,莎莉和杰克放进盒子里。我也可以从包装盒中取出。卸下后,将不留任何插槽。 我现在需要删除“鲍勃”。新的数组将是: 这是我的反应成分: 在这里,我向您展示了一个最少的代码,因为它包含更多内容(onClick等)。关键部分是从数组中删除,删除,销毁“ Bob”,但调用时不起作用。有任何想法吗?我一直在看这个,但由于使用React,所以我可能做错了。 问题答案: 要从

  • 问题内容: 有没有一种方法可以从JavaScript数组中删除项目? 给定一个数组: 我想做类似的事情: 我已经研究过了,但是只能按位置编号删除,而我需要一些根据其值删除项目。 问题答案: 如果不允许添加到本机原型,则可以是全局函数或自定义对象的方法。它从数组中删除与任何参数匹配的所有项目。 为了使其成为全球性的 并照顾IE8及以下版本-

  • 问题内容: 我在mongo db中有这样的文档集合: 和服务器端的方法(Spring + Mongo): 该参数是要从trips数组中删除的tripGcsId的列表。上面的方法给我错误: 当我尝试使用$运算符时,如其他SO所述,答案如下: 我收到此错误: 我不确定这个pullAll命令在服务器端应该是什么样子。 问题答案: 您需要使用更新运算符,该运算符将查询用于匹配并删除嵌入式数组中的所有匹配行

  • 问题内容: 我有一个数字数组,并且使用该方法向其中添加元素。 有没有一种简单的方法可以从数组中删除特定元素? 相当于- 我必须使用 核心 JavaScript-不允许使用框架。 问题答案: 使用查找要删除的数组元素的,然后使用删除该索引。 splice()方法通过删除现有元素和/或添加新元素来更改数组的内容。 第二个参数是要删除的元素数。注意,将在适当位置修改数组并返回一个包含已删除元素的新数组。

  • 问题内容: 相关模板HTML: 相关控制器方法: 我试着和。 尽管数据库已成功删除,但我无法从作用域中删除此项目,也不想对服务器进行方法调用以获取客户端已拥有的数据,我只想从作用域中删除此人。 有任何想法吗? 问题答案: 您的问题不是Angular,而是Array方法。从数组中删除特定项目的正确方法是使用。另外,使用ng- repeat时,您可以访问特殊属性,该属性是您传入的数组的当前索引。 该解