2017-09-02 5 views
0

配列内のテキストが見つかった場合、どのように配列をテキスト行にマッチさせることができるかを理解しようとしていますが、その値を返したいと思います。配列内の文字列を文字列にマッチさせ、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が返されます。

+3

あなたはhttp://php.net/manual/en/function.strpos.phpから – Clive

+1

ラウンド間違った方法をstrposする引数を持っている、strposのための署名が混在strpos(文字列$干し草の山、混合$ 'です針[、int $オフセット= 0]) '。代わりに 'strpos($ text、$ cat)'を試してみてください。 – Nima

+0

笑..私は正直なところ27時間以上上がっていて、目がぼやけていて、このようなものを見逃してしまったような気がします。ありがとう@CliveとNima – Craig

答えて

0
$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

0

好転。ここ は正しい構文です:

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); 
    } 
} 
関連する問題