我试图找出如何将数组中的值与特定字符串进行比较。
基本上我的值看起来像chrisx001,chrisx002,chrisx003,chrisx004,bob001
我在看fnmatch()
,但我不确定这是正确的选择,因为我想做的是保持chrisx ---但忽略bob ---所以我需要通配符最后一点,有没有办法做到这一点,我可以像
if($value == "chrisx%"){/*do something*/}
如果可能的话,可以在其他情况下将%值重复检查为int或类似值?
答案 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);