PHP の 配列 は、実際には順序付きマップです。マッピングは、値をキーに関連付けるタイプです。この型はさまざまな方法で最適化されているため、実数の配列、リスト (ベクトル)、ハッシュ テーブル (マップの実装)、ディクショナリ、セット、スタック、キューなどとして扱うことができます。さらなる可能性を。配列要素の値を別の配列にすることもできます。ツリー構造と多次元配列も許可されます。
array() 言語構造を使用して、新しい array を作成できます。カンマで区切られた任意の数の key => value ペアを受け入れます。
key は、整数 または 文字列 にすることができます。 key が integer の標準表現である場合、整数として解釈されます (例: "8" は 8 として解釈されます)。一方、"08" は "08" として解釈されます)。 key の浮動小数点数は 整数 に丸められます。 PHP では、インデックス付き配列は関連する 配列 と同じであり、どちらも 整数 と を含むことができます。文字列 の。
値には任意の PHP タイプを指定できます。
指定された値にキーが指定されていない場合は、現在の最大の整数インデックス値が取得され、新しいキー名はその値に 1 を加えたものになります。指定したキー名にすでに値が設定されている場合、その値は上書きされます。
キー名として TRUE
を使用すると、整数 1 がキー名になります。 FALSE
をキー名として使用すると、integer 0 がキー名になります。 NULL をキー名として使用することは、空の文字列を使用することと同じになります。空の文字列をキーとして使用すると、空の文字列をキーとして値が作成 (または上書き) されます。これは、空の角括弧を使用する場合とは異なります。
配列とオブジェクトをキーとして使用することはできません。これを行うと、次の警告が表示されます:不正なオフセット タイプ。
$arr がまだ存在しない場合は、新しいものが作成されます。これは、配列を定義する別の方法でもあります。値を変更するには、新しい値を割り当てるだけです。キーと値のペアを削除したい場合は、unset() を使用します。
注: 角括弧が指定されているがキー名が指定されていない場合は、現在の最大整数インデックス値が取得され、新しいキー名は値 1 になります。現在整数インデックスがない場合、キー名は 0 になります。指定したキー名にすでに値が設定されている場合、その値は上書きされます。
ここで使用される最大整数キー名 は、必ずしも現在配列内にある ではないことに注意してください。最後に配列のインデックスが再作成されてから存在している必要があります。
文字列として表現される配列インデックスは常に引用符で囲む必要があります。たとえば、$foo[bar] の代わりに $foo['bar'] を使用します。しかし、なぜ $foo[bar] は間違っているのでしょうか?
その理由は、このコードには文字列 ('bar' - 引用符に注意してください) の代わりに未定義の定数 (bar) があり、PHP が後でこの定数を定義する可能性があるためです。残念ながら、コードには同じ名前が付いています。これが機能するのは、PHP が 裸の文字列 (引用符がなく、既知のシンボルに対応しない文字列) を、値がその裸の文字列である通常の文字列に自動的に変換するためです。たとえば、bar
として定義された定数がない場合、PHP はそれを 'bar' に置き換えて使用します。