2009-05-14 13 views
0

私はこの問題をPHPコーディングで再度確認し、何が起きているのか理解できませんでした。この例では複数の次元の配列キーは、値ではなく単一文字を返します

$val = $matches[1][$i] 

、$ I = 0(forループで設定)とアレイの寸法に保持された値は、文字列です。その文字列が$ valに代入される代わりに、$ valには文字列の0番目の文字が割り当てられます。 $ i = 1の場合、$ valに文字列の1番目の文字が割り当てられます。

PHPは文字列を返す代わりに、これを部分文字列演算のように扱うのはなぜですか?その文字列内の1文字の代わりに文字列の値を取得するにはどうすればよいですか?

+0

どのように配列の一致を定義していますか?問題のコードスニペットのループを十分に投稿してください – Louis

答えて

4

多次元配列ですか?私はあなたが配列のような文字列にアクセスすると、文字列のキーの位置にある文字を返し、それがあなたの問題かもしれないと思います。あなたの割り当てやその他のものをチェックし、誤って文字列の配列ではなく$ matches [1]に文字列を割り当てていないことを確認してください。

+0

ありがとうございました。 preg_match_all()の代わりにpreg_match()を呼び出していたので、配列は多次元ではありませんでした。将来、これを知ることはストリングアクセスの指標となります。ありがとう! –

0

これは奇妙です!私はそれが以前に起こったことはありませんでした。私は、多次元が本当に単なる通常の配列であるのだろうかと思います。サブディングが単一次元の場合は、[$ i]を使用して部分文字列を返すことができます。

-1

おい、私はその非常に遅く知っていますが、[]、それは文字列として扱われますので、あなたの問題でなければなりません含まれていない場合

$matches[] = "value"; 

を確認してください。

+1

質問には既に回答がありました... –

関連する問題