是否可以执行类似于where like 'startingwith%'
的操作(如PHP中的SQL)进行比较?
例如,我要显示所有以123 ...开头的值,而不是显示以132 ...
尝试过:
if($x == 'aaa%')
但是我很确定PHP可以将像C这样的%作为模比较。
我找不到是否有可能在PHP中做这样的事情。
答案 0 :(得分:2)
您可以将(.*)
用作通配符。
赞:
if(preg_match("123(.*)", $var) === 1)
{
// do something
}
当您要过滤当然的数组时,需要循环。
有关正则表达式的其他内容:
如果您只想检查前缀,也可以使用其他方法。有一个不错的解决方案性能基准,可以在here中找到。
答案 1 :(得分:1)
您可以使用strpos()
来执行此操作,它返回找到的子字符串的索引:
if (strpos($x, 'ABC') === 0) {
echo '$x starts with "ABC"';
}
但是,如果您要做到不区分大小写(就像您的SQL一样),则可以使用stripos()
:
if (stripos($x, 'abc') === 0) {
echo '$x starts with "ABC"';
}
如果要获取结尾带有子字符串的字符串,则可以使用strlen()
:
if (stripos($x, 'def') === (strlen($x) - strlen('def'))) {
echo '$x ends with "def"';
}