数组搜索返回长字符串的索引

时间:2014-02-14 17:14:15

标签: php arrays search

我想返回数组的索引。我正在尝试以下内容,但它不起作用:

$os = array("Helo how are you","I am you");

foreach ($os as $oss) {
    if(strpos($oss, 'you') !== false) {
        $reference= array_search('you', $oss);
        echo $reference;    
    }
}

我希望引用echo 0,1。鉴于我正在搜索单词'you'并且它出现在0,1中。数组是否搜索单个字符串?如何搜索整个子字符串?

2 个答案:

答案 0 :(得分:3)

array_search()在这里不起作用,因为它无法搜索部分匹配。相反,您可以使用以下方法:如果strpos()语句的计算结果为true,则只显示该迭代的索引:

foreach ($os as $reference => $oss)
{
    if(strpos($oss, 'you') !== false) {
        echo $reference, PHP_EOL;
    }
}

输出:

0
1

Demo

答案 1 :(得分:-2)

尝试将foreach循环更改为:

foreach ($os as $index => $oss)
{ 
  if(strpos($oss, 'you') !== false) {
      $reference= array_search('you', $oss);
      echo $index;    
  }
}