如何从数组中删除一个键,如果它的任何值包含单独数组中的任何字符串


How do I remove a key from an array if any of it's values contain any string in a separate array?

我有一个数组$search_results。每个键有多个元素。我也有一个单列数组叫做$outofstock。如果$search_results的特定键中的任何元素与$outofstock中的任何条目完全匹配,我想删除该键,并重新排列键结构,以便在键顺序上没有间隙-然后创建一个同名的新数组:$search_results

我已经尝试了一些解决方案,即

  • 搜索数组并删除不包含'z或带破折号的a - z的条目,
  • PHP -从一个以特定字符串开头的数组中获取所有键

但是我似乎无法让它们完全匹配文本,然后重新创建数组,同时使用array_filter删除我需要删除的条目。

您可以遍历一个数组并删除查找字符串的索引。

for($i=0;i$<count($outofstock);$i++){   
    foreach($search_result as $k=>$v){   
        if($outofstock[$i]==$v){    
            unset($search_result[$k]);
        }    
    }    
}
$search_result = array_values($search_result);