如何匹配数组中的文本到一个字符串,并返回它的值如果为true?
问题描述:
我想了解如何匹配一个文本行的数组,如果发现数组内的文本,然后我想返回该值。如何匹配数组中的文本到一个字符串,并返回它的值如果为true?
我试过以下,但似乎没有得到返回。
$catArray = array(
'0' => 'breakfast',
'1' => 'lunch',
'2' => 'dinner',
);
$text = 'It is your breakfast';
foreach($catArray as $cat){
if(strpos($cat, $text) !== false){
return $cat;
}
}
通过这个逻辑,breakfast
应该返回。
答
$catArray = array(
'0' => 'breakfast',
'1' => 'lunch',
'2' => 'dinner',
);
$text = 'It is your breakfast';
foreach($catArray as $cat){
if(strpos($text, $cat) !== false){
echo $cat;
}
}
回报 breakfast
所以基本上扭转haystack and the needle
答
你正在做它在一个错误的方式,你也正在返回变量,而不是印刷。 这里是正确的语法:
strpos(<srting>,<find>,<start-optional>)
我修改代码,现在它正在工作。
$catArray = array(
'0' => 'breakfast',
'1' => 'lunch',
'2' => 'dinner',
);
$text = 'It is your breakfast';
foreach($catArray as $cat){
if(strpos($text, $cat) !== false){
echo($cat);
}
}
你有参数传递给strpos以错误的方式 – Clive
从http://php.net/manual/en/function.strpos.php,对strpos签名是'混合strpos(字符串$大海捞针,混合$针[,int $ offset = 0])'。试试'strpos($ text,$ cat)'。 – Nima
大声笑..我老实说起了超过27个小时,眼睛模糊,我觉得像一个白痴错过这样的事情..谢谢@ Clive和尼玛 – Craig