0

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

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

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

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

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

4

2 回答 2

4

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

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

您还可以在 chrisx 之后捕获该位:

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

echo $matches[1];
于 2012-06-05T17:47:23.853 回答
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);
于 2012-06-05T17:54:07.500 回答