2016-05-10 13 views
5

の終了限界で文字列内のサブ文字列の最後に現れる位置を見つけます。

現在、私は

strrpos($string,'@'); 

を使用しています

のstrrposの3番目のパラメータは、我々は、インデックスを終了与えることができ、インデックス開始されるのですか?

+0

もう一度、最後の '$'記号の位置をオフセットとして取得します。 – Rizier123

+0

それは私が$の前に$のインデックスを必要とする検索の開始インデックスを検討します。 –

+0

文字列が '' abc @def @xyz $ @def @xyz $ @bca "'の場合はどうなりますか? – RomanPerekhrest

答えて

5

strrposを使用すると、最後のオカレンスを取得できます。あなたの目的のためにfunction.strrpos

の詳細、あなたは$とあなたの文字列を爆発し、爆発配列の最初のindexためstrrposのアプリケーションを起動する必要があります。

これを試してみてください:

$string="abc @def @xyz $ @def @xyz"; 
$strArr = explode('$', $string); 
$pos = strrpos($strArr[0], "@"); 

if ($pos === false) { // note: three equal signs 
    echo 'Not Found!'; 
}else 
    echo $pos; //Output 9 this case 
+1

ありがとう@Frayne。 –

2

別の方法を: -

$string="abc @def @xyz $ @def @xyz"; 
$pos = strrpos($string, '@', -strrpos($string, '$')); 
if($pos === false){ 
    echo 'Not Found!'; 
}else{ 
    echo $pos; // 9 
} 

: - 負の符号が$記号の前の最後の '@' のインデックスを返します。

+1

私は、このソリューションが文字列を最初に爆発させるよりもはるかにエレガントである – brense

関連する問題

 関連する問題