-1

文字列からURLの配列を生成しているpreg_match_allがあります。配列は次のようになります。

$url[0] = "http://www.siteone.com";
$url[1] = "http://www.sitetwo.com";
$url[2] = "http://www.sitethree.com/example1";
$url[3] = "http://www.sitefour.com";
$url[4] = "http://www.sitethree.com/example2";
$url[5] = "http://www.sitefive";
$url[6] = "http://www.sitesix";
$url[7] = "http://www.siteseven";
$url[8] = "http://www.sitethree.com/example3";

ただし、「http://www.sitethree.com」が含まれている場合は、#url配列を検索して値を変更し、配列内のこの特定の値を「値なし」に設定できる必要があります。したがって、このプロセスが適用されると、配列は次のようになります。

$url[0] = "http://www.siteone.com";
$url[1] = "http://www.sitetwo.com";
$url[2] = "no value";
$url[3] = "http://www.sitefour.com";
$url[4] = "no value";
$url[5] = "http://www.sitefive";
$url[6] = "http://www.sitesix";
$url[7] = "http://www.siteseven";
$url[8] = "no value";

preg_match_allとループ内のifステートメントのさまざまなバリエーションを試しましたが、取得できませんでした。どんな助けでも大歓迎です。

4

4 に答える 4

2
$url = array_map(function($v) {
    return strpos($v, 'http://www.sitethree.com') === false ? $v : 'no value';
}, $url);
于 2012-06-11T13:16:23.027 に答える
1
foreach ($url as &$value) {
  if (strpos($value, 'http://www.sitethree.com') === 0) {
    $value = 'no value';
  }
}
于 2012-06-11T13:17:37.047 に答える
0
foreach($url as $id => $link){
    if(strstr($link, 'sitethree.com')){
         $url[$id] = 'no value';
    }
}
print_r($url);
于 2012-06-11T13:16:28.447 に答える
0

それを行う簡単な方法はこれです:

foreach($url as $key => $value)
{
  if(stristr($value, "http://www.sitethree.com"))
  {
    $url[$key] = "no value";
  }
}
于 2012-06-11T13:16:57.373 に答える