2010-12-02 23 views
2

PHPは、文字列内の指定された値の最初のインスタンスの位置を見つけるための関数strpos()を持っています。文字列の配列である針でこれを行う方法はありますか?文字列内の文字列の配列の最初の位置を見つける

$str = '1st and 3rd'; 

str_array_pos($str, array('st', 'nd', 'rd', 'th')) //would return 1 because of 'st' 
+0

で起動するので、あなたの例では、戻り値は0ではなく1でなければなりませんstrpos()を実行して結果を配列に保存します。あなたはすべての結果の 'min()'を探しています。 – svens

答えて

3

function str_array_pos($string, $array) { 
    for ($i = 0, $n = count($array); $i < $n; $i++) 
    if (($pos = strpos($string, $array[$i])) !== false) 
     return $pos; 
    return false; 
} 

ちなみに配列インデックスはあなたが `上foreach`可能性が0

+1

これは、針ストリングの最初の発生位置を返すとは限りません。 – svens

+0

@svens:修正されました。 :) – casablanca

+0

ありがとう! – babonk

0

array_search()===falseで、テストをそれを行います:それは、最初の発生を与えるだろう。あなたは1を自分で書くことができ

+2

これは完全な比較を行います。部分文字列に対しては機能しません。 – casablanca

+0

2番目の考えでは、私はこれがあなたの状況ではうまくいかないと思います。 @カサブランカ - あなたがコメントしているときに気づいた、あなたは間違いなく正しい方法です、+1してください。 – Ben

関連する問題