PHP匹配字符串,fnmatch是否适合该作业

PHP匹配字符串,fnmatch是否适合该作业,php,string,comparison,Php,String,Comparison,我试图找出如何将数组中的值与特定字符串进行比较 基本上,我的值看起来像chrisx001、chrisx002、chrisx003、chrisx004、bob001 我在看fnmatch(),但我不确定这是正确的选择,因为我想做的是保留chrisx——但忽略bob——所以我需要通配符最后一位,有没有办法在我喜欢的地方这样做 if($value == "chrisx%"){/*do something*/} 如果可能的话,在其他情况下是否可以将%值双重检查为int或类似值?正则表达式可以告诉您字符

我试图找出如何将数组中的值与特定字符串进行比较

基本上,我的值看起来像chrisx001、chrisx002、chrisx003、chrisx004、bob001

我在看
fnmatch()
,但我不确定这是正确的选择,因为我想做的是保留chrisx——但忽略bob——所以我需要通配符最后一位,有没有办法在我喜欢的地方这样做

if($value == "chrisx%"){/*do something*/}

如果可能的话,在其他情况下是否可以将%值双重检查为int或类似值?

正则表达式可以告诉您字符串是否以chrisx开头:

if (preg_match('/^chrisx/', $subject)) {
  // Starts with chrisx
}
您还可以捕获chrisx后面的位:

preg_match('/^chrisx(.*)/', $subject, $matches);

echo $matches[1];

正则表达式可以告诉您字符串是否以chrisx开头:

if (preg_match('/^chrisx/', $subject)) {
  // Starts with chrisx
}
您还可以捕获chrisx后面的位:

preg_match('/^chrisx(.*)/', $subject, $matches);

echo $matches[1];

您可以筛选数组以返回第二个数组,其中只包含以“chris”开头的条目,然后处理该筛选数组:

$testData = array ( 'chrisx001', 'chrisx002', 'chrisx003', 'chrisx004', 'bob001');
$testNeedle = 'chris';

$filtered = array_filter( $testData, 
                          function($arrayEntry) use ($testNeedle) { 
                              return (strpos($arrayEntry,$testNeedle) === 0); 
                          }
);

var_dump($filtered);

您可以筛选数组以返回第二个数组,其中只包含以“chris”开头的条目,然后处理该筛选数组:

$testData = array ( 'chrisx001', 'chrisx002', 'chrisx003', 'chrisx004', 'bob001');
$testNeedle = 'chris';

$filtered = array_filter( $testData, 
                          function($arrayEntry) use ($testNeedle) { 
                              return (strpos($arrayEntry,$testNeedle) === 0); 
                          }
);

var_dump($filtered);

哈,甚至都没想过preg_match,我猜有时候答案在盒子里,而不是在盒子外面。。thanks@chris人们很容易养成这样的习惯:试图想出最聪明、有时也是最晦涩难懂的方法来实现目标。它们通常是最令人满意的:)preg_match是推荐的PHP正则表达式系统。另一个(ereg)已弃用。哈,甚至都没想过preg_match,我猜有时候答案在盒子里,而不是在盒子外面。。thanks@chris人们很容易养成这样的习惯:试图想出最聪明、有时也是最晦涩难懂的方法来实现目标。它们通常是最令人满意的:)preg_match是推荐的PHP正则表达式系统。另一个(ereg)已弃用。不清楚您想在哪里进行比较,但是如果您想快速获得
chrisx的数组,那么您也可以查看。不清楚您想在哪里进行比较,但是如果您想快速获得
chrisx的数组,那么您也可以查看。或者,
preg\grep(“/^chrisx/”,$testData)
。或者,
preg\grep(“/^chrisx/”,$testData)