是否可以做类似的事情: 如果比较,where like 'startingwith%'
像在 PHP 中的 SQL 中一样?
例如,我想显示所有以123 开头的值...但不显示以 132 开头的值...
试:
if($x == 'aaa%')
但我很确定 PHP 处理像 C 一样的 % 作为模比较。
我找不到是否可以在 PHP 中做这样的事情。
您可以将(.*)
用作通配符。
喜欢:
if(preg_match("123(.*)", $var) === 1)
{
// do something
}
当然,当您想要过滤数组时,您需要一个循环。
正则表达式的其他阅读材料:
- PHP preg_match
- 关于 PHP 正则表达式的教程
如果您只想检查前缀,也可以使用完全不同的方法。有一个很好的解决方案性能基准,可以在这里找到。
您可以使用返回找到的子字符串索引的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"';
}