2012-03-27 22 views
1

基本的には、検索する文字列があります。それが1つの文字列だった場合、stristrは完全に動作します。しかし、それは配列なので、私が考えることができるのはforeachループを実行し、各繰り返しから文字列stristrを実行することだけです。PHPでは、stristrのような機能はありますか?

これを行うには良い方法がありますが、わかりません。誰でもここで私を助けることができますか?

EDIT

たとえば、私はこの配列を持っていると言う:

$array = array("string1", "foo", "bar", doowop");

と、この文字列:

$string = "aw dang man lets go to that bar";

私は$stringどうかを把握する必要があります配列の文字列の1つを含みます。

+0

stristrは検索だけでなく、文字列の一部を返します。あなたの質問を明確にしてください - 文字列(haystack)に配列のいずれかの文字列が含まれているかどうか、あるいはそれらがすべて含まれているかどうかを確認する必要があるかどうか確認する必要がありますか? –

+0

@ MarkBaker:あなたは 'stripos()'を考えています。一致した針の前後に文字列の一部を返します。 – landons

+0

申し訳ありません...私の悪い –

答えて

2

stristr関数のポイントが戻り値であるため、配列をforeachする必要があります。

+0

まあ、まあ。ちょっと非効率なようです。 – Rob

+0

しかし、非効率的だと思われますが、配列のサイズが数十万の要素でない場合は無視してもいいと思います。 – clops

0

最も近い数値はarray_searchdocs)ですが、大文字と小文字は区別されません。またはarray_keysdocs)。あなたはあなたが望むものを言わない - 前者はマッチを見つけるとすぐに止まるだろう。後者はすべてのマッチを返します。

+0

strtolower()で条件と配列を小文字にすると、非感受性。 –

+0

'array_search'は配列を使います。' strtolower() 'で配列全体を小文字にすることはできません –

0

コールバックを使用できます。例として、array_mapまたはarray_walkまたはarray_walk_recursiveのような機能があります。見てくださいhttp://ch2.php.net/manual/de/book.array.php

希望に役立ちます。

0

array_searchin_arrayがありますが、どちらも大文字と小文字が区別されます。あなたはこのようにそれを行うことができます:

$new_array = array_flip($your_array); //exchange keys for values 
$new_array = array_change_key_case($new_array); // lowercases everything 
$new_array = array_flip($new_array); // exchanges your values back 
$your_key = array_search($needle, $new_array); 

$original_value = $your_array[$your_key]; 

はそれが本当にはるかに良いだけであなたは preg_grep機能を検討することができます:)

関連する問題