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