我正在测试一个概念,看它是否适合以后更复杂的东西。
我有一个字符串和一个数组。我想搜索字符串以查看它是否包含数组中的任何值。当它发生时,我希望它从数组中回显键和匹配的值。我的代码就是这个。
<?php
$string = '[red,yellow,[blue,[green';
$colour = array ('red','blue','yellow','green');
foreach($colour as $key => $value){
if(strpos($string,'['.$value)){
echo $key." ".$value."<br>";
}
}
?>
我想,这应该返回与“[color”
相匹配的任何内容我认为这会返回结果:
0 red
1 blue
3 green
返回
1 blue
3 green
有谁知道为什么它不会在[红色? [正好在字符串的开头?
答案 0 :(得分:2)
strpos
返回字符串位置,红色位于0位置
你应该改变你的条件:
if(strpos($string,'['.$value) !== false){
如果根本没有匹配则返回false