在PHP中,是否有类似stristr的函数,但用于数组?

在PHP中,是否有类似stristr的函数,但用于数组?,php,arrays,Php,Arrays,基本上,我有一个字符串数组要搜索。如果它只是一个字符串,stristr将非常有效。然而,由于它是一个数组,我唯一能想到的就是运行一个foreach循环和stristr每次迭代的字符串 当然有更好的方法,我只是不知道 编辑 例如,假设我有这个数组: $array=array(“string1”、“foo”、“bar”、“doowop”); 这个字符串: $string=“aw dang man让我们去那个酒吧” 我需要弄清楚$string是否包含数组中的一个字符串。您必须遍历数组,因为strist

基本上,我有一个字符串数组要搜索。如果它只是一个字符串,
stristr
将非常有效。然而,由于它是一个数组,我唯一能想到的就是运行一个foreach循环和
stristr
每次迭代的字符串

当然有更好的方法,我只是不知道

编辑 例如,假设我有这个数组:

$array=array(“string1”、“foo”、“bar”、“doowop”);

这个字符串:

$string=“aw dang man让我们去那个酒吧”


我需要弄清楚
$string
是否包含数组中的一个字符串。

您必须遍历数组,因为stristr函数的点是返回值。

最近的是
数组搜索
(),但它不区分大小写。或者
数组键
()。你不需要说你想要哪一个——前者会在找到匹配项后立即停止;后者会返回所有匹配项。

你可以使用回调。例如,有一些函数,如
array\u map
array\u walk
array\u walk\u recursive
。看看


希望有帮助。

在数组中有
array\u search
,但它们都区分大小写。您可以这样做:

$new_array = array_flip($your_array); //exchange keys for values
$new_array = array_change_key_case($new_array); // lowercases everything
$new_array = array_flip($new_array); // exchanges your values back
$your_key = array_search($needle, $new_array);

$original_value = $your_array[$your_key];

不知道这是否比循环要好得多:

你可以考虑<强> < /强>函数,我想这将正好解决你的问题。你也可以查看<强> >/St>,<强> >/>,<强> >/>,<强> >/>和>强> >强>函数。ng>不能解决您的问题。

stristr不只是搜索,而是返回字符串的一部分。因此,请澄清您的问题-是否需要检查字符串(haystack)是否包含数组中的任何字符串,或者是否需要检查它是否包含所有字符串,或者是什么?@MarkBaker:您考虑的是
stripos()
。它确实返回字符串的一部分,在匹配的指针之前或之后。如果使用strtolower()将条件以及数组小写,则它将不区分大小写。
array\u search
使用数组,并且不能使用
strtolower()将整个数组小写
好吧,该死。似乎有点效率低下。是的,似乎效率低下,但我想如果数组的大小不是数十万个元素,那么它可以忽略不计;-)