2011-01-20 9 views
0

私はこの配列アクセス構文を理解していないと理解していませんか?私はこの配列構文

+3

ほとんど同じ質問を4分以内に4回お願いしました。新しい質問を開くのを止め、必要に応じて既存の質問を更新してください。 –

+0

可能な複製[どのシーンでこのPHP配列を使用しますか?](http://stackoverflow.com/questions/4732528/at-what-sche-do-we-use-this-php-array) –

答えて

3

$segsが連続したインデックスのみを持つ数値配列の場合、エラーが発生する可能性があります。
意味、それがために失敗します:

array("foo","bar"); 

しかし

array("foo", 2=>"bar"); 

は、我々は最初のケースに対処することを、いまのために働く、これは動作します:

$target[$segs[count($segs) - 1]] 

ファースト、count($segs) - 1が評価され、数値が返されます。この場合、最後のインデックス$segs(数値配列である場合)です。

$segs[count($segs) - 1]は、の$segsの最後の要素を返します。その値が何であれ、$target[...]のインデックスとして使用されます。


を要約すると:それは、ネストされた配列のインデックスと裏返しに評価されます。このような方法が必要であるか否かを

See it in action.

あなたが解決しようとしている問題によって異なります。そのようなネストされた可変配列索引付けをどこで使うのかわからない場合は、おそらくそれを必要としません。

+0

+1本当のつかみを指摘するために。 – Stephen

2

$segsが配列の場合、その構文は問題ありません。ただし、$segsの数値配列配列を使用している場合は、インデックスがゼロから始まるため、count($segs)を呼び出すことは存在しないキーであることに注意することは重要です。