Php 在数组中查找字符串的一部分

Php 在数组中查找字符串的一部分,php,arrays,Php,Arrays,我有一个这样的数组 $a = ['foo', 'bar', 'toto', 'tata']; 我有一根很长的绳子 $s = 'bla b blabababa fooblbl'; 我想知道我的字符串$s中是否出现了$a 我试着用数组中的和strpos来做这件事,但我打不通 有什么建议吗?一个简单的方法 foreach($a as $b) if (strpos($s,$b) !== false) echo 'yay!'; foreach($array as $i

我有一个这样的数组

$a = ['foo', 'bar', 'toto', 'tata'];
我有一根很长的绳子

$s = 'bla b   blabababa  fooblbl';
我想知道我的字符串$s中是否出现了$a

我试着用数组中的
strpos
来做这件事,但我打不通

有什么建议吗?

一个简单的方法

foreach($a as $b) 
    if (strpos($s,$b) !== false)
        echo 'yay!';
foreach($array as $item){
  if(strpos($item,"mysearchword")!== false){


// handle the response



}

}

返回$result,其中包含在$s中找到的$a中的所有元素

您是如何使用这些元素的?一个很好的提示是,在这里发布之前,首先尝试自己解决这个问题。请向我们展示您的一些尝试(即使它们实际上不起作用)。您是否尝试了
array\u map()
?@MaxiCapodacqua array\u map并不意味着用作foreach<代码>如果(在数组中('yes!'),数组映射(创建函数($key,$val“,'if(strpos('.$s.”,$val)!==false)返回“yes!”))回显“yay!”。您可以替换为“是!”使用“true”,但它看起来仍然很神奇。@IanBrindley我更新了代码以查找字符串中找到的数组项的数量。好东西<代码>函数arrayStrPos($array,$str){ob_start();foreach($b数组)if(strps($str,$b))echo'yay!';$out=ob_get_clean();返回$out?strlen($out)/strlen('yay!':0;
。这就是我写代码的方式@多西克哈哈,我希望看到一些这样的生产代码!使用字符串文字长度进行计数!我敢打赌你走进了乔布斯的世界:)@IanBrindley我见过更糟的<如果($i<5)继续,$i=0;$i<10;$i++)的代码>。我们都知道web开发与性能无关。这是为了让它发挥作用!(不,我确实为我的代码感到自豪,所以这些东西不会出现在我的产品代码中,哈哈)。
$a = ['foo', 'bar', 'toto', 'tata'];

$s = 'bla b   blabababa  fooblbl';

$result = array_filter(
    $a,
    function($value) use ($s) {
        return (strpos($s, $value) !== false);
    }
);
var_dump($result);