に文字列の各文字の位置を取得しますこのような文字の位置:PHPは、例えば、文字列、与えられた配列
$string = " this is a string ";
^ ^^^
2 11 16 20
理想的には出力がちょうど配列のようになります。
2,11,16,20
はこれまでのところ、ここで私が持っているものであるが、私は、これは私の限られたスキル与えられたビット私の頭の上にあると思う:
$string = " this is a string ";
$string = rtrim($string); //just trim the right sides spaces
$len = strlen($string);
$is_prev_white = true;
$result = "";
for($i = 0; $i <= $len; $i++) {
$char = substr($string,$i,1);
if(!preg_match("/\s/", $char) AND $prev_white){
$result .= $i.",";
$prev_white = false;
}else{
$prev_white = true;
}
}
echo $result;
私は取得しています: 2,4,11,16,20,22,24を、 26
これは正解ですが、私が試していた形式の '2,11,16,20'にそれらを入れることはできません。示されているようにcsvリストに到達する最も簡単な方法は何ですか? –
@TripleCでは、文字列のオフセットを持つ配列をCSV文字列に変換する最も簡単な方法は、 'implode'関数を使うことです:' var_dump(implode( "、$ matches [0]);' 'string ' 11,16,20'' – RomanPerekhrest
私はもう1つの質問がありました。私の言葉の中には、例えば 'ca#t'のようなシンボルがあります。この正規表現を修正して、シンボルを含む単語を含めるにはどうしたらいいですか? –