比较ValueStartingWithX%...像在sql中一样,但是在php比较中

时间:2018-08-23 09:57:57

标签: php

是否可以执行类似于where like 'startingwith%'的操作(如PHP中的SQL)进行比较?
例如,我要显示所有以123 ...开头的值,而不是显示以132 ...

开头的值。

尝试过:

if($x == 'aaa%')

但是我很确定PHP可以将像C这样的%作为模比较。

我找不到是否有可能在PHP中做这样的事情。

2 个答案:

答案 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"';
}