PHP在数组和字符串中包含

PHP在数组和字符串中包含,php,arrays,string,contains,Php,Arrays,String,Contains,我有任何数据数组“example.com/imports”、“example.com/var”、“example.com/js”,我想删除所有包含此内容的网站地图URL 我的一些url数据如下所示 "example.com/imports/product.html", "example.com/imports/product1.html", "example.com/var/cache/5t46fdgdyg7644gfgfdgr", "example.com/js/scripts.js" 我有

我有任何数据数组
“example.com/imports”、“example.com/var”、“example.com/js”
,我想删除所有包含此内容的网站地图URL

我的一些url数据如下所示

"example.com/imports/product.html",
"example.com/imports/product1.html",
"example.com/var/cache/5t46fdgdyg7644gfgfdgr",
"example.com/js/scripts.js"
我有这个密码

for ($i = 0; $i <= count($urls); $i++) {

$url = $urls[$i];

if (in_array($url, $remove_urls)) {
// found remove url
}else{
echo $url;
}
}
对于($i=0;$i而不是数组($url,$remove\u url)中的
尝试使用
strpos

foreach ($urls as $url) {
  $remove = false;

  // loop $remove_urls and check if $url starts with any of them
  foreach ($remove_urls as $remove_url) {
    if (strpos($url, $remove_url) === 0) {
      $remove = true;
      break;
    }
  }

  if ($remove) {
    // remove url
  } else {
    echo $url;
  }
}

您可以像这样使用preg_grep函数:

$urls = ['imports', 'var', 'js'];
$url_pattern = '/example.com\/(' . implode('|', $urls) . ')\/.*/';
$removed = preg_grep($url_pattern, $remove_urls);

举个例子。

你想删除什么?谢谢!效果很好,刚刚在strpsmaybe中将$remove\u url更改为$remove\u url可能我在这里是个效率迷,但我更喜欢
if(substr($url,0,strlen($remove\u url))===$remove\u url)
,因为
strpos
将在失败之前检查字符串的所有位置,而这只检查第一个位置—我们对XD感兴趣的位置