为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中读取预定义值 (PHP)

从字符串中读取预定义值 (PHP)

PHP
月关宝盒 2023-07-07 10:46:32
PHP,我想读出字符串中的特定值,并返回其值:predefined Values: '=', '>', '<', '>=', '<=';String1 to Search for: "email = test@gmail.com"         //return =String2 to Search for: "age > 20"                       //return >有人知道获得这些值的最简单方法吗?如果对于数组有更好的解决方案,也请告诉我。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我认为 ju 应该使用 strpos ( string $haystack , mix $needle [, int $offset = 0 ] ) 。

就像 if(strpos("email = test@gmail.com",'=' ) === false ) { 不执行任何操作 } else { 执行某些操作 }


查看完整回答
反对 回复 2023-07-07
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

你可以使用正则表达式


if(preg_match('^(?<left>\w+?) (?<operator>[=><]=?) (?<right>\w+?)$', $string, $matches)) {

    var_dump($matches)

}


//will output

Array

(

    [0] => email = test@gmail.com

    [left] => email

    [1] => email

    [operator] => =

    [2] => =

    [right] => test@gmail.com

    [3] => test@gmail.com

)

所以你可以简单地$matches['left']计算方程的左边部分。$matches['right']对于正确的部分,你的操作员是$matches['operator']


查看完整回答
反对 回复 2023-07-07
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

我想我找到了解决方案:


$arrayz = str_split($string);

$operatorsarr = array('=', '>', '<', '>=', '<=');

$matches = array_intersect($arrayz, $operatorsarr);


foreach ($matches as $op){

                

        $operator = $op;     //*there is only one operator per String     

}


查看完整回答
反对 回复 2023-07-07
  • 3 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信