PHP匹配字符串,是适合这项工作的fnmatch

时间:2012-06-05 17:45:51

标签: php string comparison

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

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

我在看fnmatch(),但我不确定这是正确的选择,因为我想做的是保持chrisx ---但忽略bob ---所以我需要通配符最后一点,有没有办法做到这一点,我可以像

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

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

2 个答案:

答案 0 :(得分:4)

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

if (preg_match('/^chrisx/', $subject)) {
  // Starts with chrisx
}

您还可以在chrisx:

之后捕获该位
preg_match('/^chrisx(.*)/', $subject, $matches);

echo $matches[1];

答案 1 :(得分: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);