考えを見てみましょう:
$array = ("hello", "world") // This is implicitly indexed by integer.
以下と同じです:
$array = (0 => "hello", 1 => "world"); // Explicit indexing.
実行することで確認できprint_r($array)
ます; いずれの場合も、出力にはインデックス付き配列が表示されます。PHP 配列はすべて連想です。キーを指定しなかった場合でも、配列内の値は整数のインデックス番号で並べられます。
それでは、次を見てみましょう。
だから私の質問は、このようなコードが有効かどうかです:
$hello = $array[$array["hello"]];
ここでコードが壊れます。なんで?
$array["hello"]
は有効な値ではありません。これが参照しているのは、「インデックス「hello」にある配列のリストの値です。
ただし、array("hello", "world")
「hello」のインデックス キーはありません。むしろ、暗黙的にキーインデックス 0を持つ値"hello" を持っています。
PHP 配列についてよく読んで、次のことを理解してください。
- PHP 配列はすべて連想です。キーは文字列にすることができますが、明示的に設定されていない場合は整数になります。
- 連想配列は、キー => 値のペアの形式です。キーがある場合は、それに関連付けられた値を見つけることができます。
- PHP 配列から値を取得しようとするときの構文は次のとおりです。
$array['key']
または、多次元の場合$array['firstlevelkey']['secondlevelkey']
などです。返される値は、その特定のキーのキー => 値のペアの値になります。
これがお役に立てば幸いです。