【发布时间】:2014-10-15 16:06:39
【问题描述】:
我有一个这样的变量:
$test = "002,003,004,005,012,032,045";
我想看看这个字符串中是否出现了某个数字范围内的任何数字。
例如:if ($test == [010-015]) echo "found";
这将检查 $test 变量中的任意数量的 010,011,012,013,014,015,如果找到,则找到回显。
我该怎么做?
我能想到的唯一方法是遍历每个数字..但必须有更好的方法!
谢谢
【问题讨论】:
-
array_intersect()在拆分列表并使用range()进行比较后会起作用。 -
if (!empty(array_intersect(explode(',', $test), range(10,15)))) -
如果 $test 是一个字符串,并且绝对没有格式化,那么无论如何你都会有 O(n) 。但是,如果您的字符串已排序,其值介于 0 和 999 之间,并且始终为 3 位数字,那么您可以直接对其进行二进制搜索。