この記事では、PHP で配列を定義するいくつかの方法を紹介します。必要な方は、
配列配列
PHP の配列は、実際には順序付きマップです。マップはキーに値を関連付けるタイプです。この型はさまざまな方法で最適化されているため、実数の配列、リスト (ベクトル)、ハッシュ テーブル (マップの実装)、ディクショナリ、セット、スタック、キューなどとして扱うことができます。さらなる可能性を。配列要素の値は別の配列にすることもできるため、ツリー構造や多次元配列も許可されます。
一般的に、定義方法は次のとおりです。
方法 1:
$a=array(1,2,4,5,6);
<?php $array=array('a','b','c'); $array[]='simon'; print_r($array); ?>
実行結果は次のとおりです。
配列
(
[0]=>a
[1]=>b
[2]=>c
[3]=>simon
)
方法 2:
$a=array(key1=>value1,key2=>value2,key3=>value3);
方法 3:
$a[key1]=value1; $a[key2]=value2;
方法 4: 角かっこ [] で配列を定義する
PHP バージョン 5.4 以降では、新しい配列省略構文を使用してこのように記述できます。
php バージョン 5.3 以前では、このような記述は受け入れられません...
$data = [ 'start_time' => '123', 'end_time' =>'456' ];
これらの構造の説明はこのマニュアルの範囲を超えていますが、各構造に対して少なくとも 1 つの例が提供されます。これらの構造の詳細については、この広範なトピックに関する他の著作を参照することをお勧めします。
構文
配列の定義 array()
array() 言語構造を使用して、新しい配列を作成できます。カンマで区切られた任意の数のキー => 値のペアを受け入れます。
array( key => value
, ...
)
//キーは整数または文字列です
//値は任意の型の値です
最後の配列単位以下のカンマは省略可能です。通常、array(1, 2, ) の代わりに array(1, 2) などの単一行の配列定義で使用されます。新しいセルを追加しやすくするために、複数行の配列定義の最後のカンマを残すのが一般的です。
5.4 以降、array() の代わりに [] を使用する短い配列定義構文を使用できるようになりました。
例 #1 単純な配列
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
key には、整数または文字列を指定できます。値は任意の型にすることができます。
さらに、キーには次の強制変換が行われます:
正当な整数値を含む文字列は整数型に変換されます。たとえば、キー名「8」は実際には 8 として保存されます。ただし、「08」は有効な 10 進数値ではないため、キャストされません。
浮動小数点数も整数に変換されます。つまり、小数部分は四捨五入されます。たとえば、キー名 8.7 は、実際には 8 として保存されます。
ブール値も整数に変換されます。つまり、キー名 true は実際には 1 として格納され、キー名 false は 0 として格納されます。
Null は空の文字列に変換されます。つまり、キー名 null は実際には "" として保存されます。
配列やオブジェクトをキー名として使用することはできません。これを強制的に実行すると、「オフセット タイプが不正です」という警告が表示されます。
複数のユニットが配列定義で同じキー名を使用する場合、最後のユニットのみが使用され、前のユニットは上書きされます。
例 #2 型強制と上書きの例
<?php $array = array( 1 => "a", "1" => "b", 1.5 => "c", true => "d", ); var_dump($array); ?>
上記のルーチンは出力します:
array(1) {
[1]=>
string(1) "d"
}
upこの例では、すべてのキー名が強制的に 1 に設定されているため、新しいユニットごとに前の値が上書きされ、「d」が 1 つだけ残ります。
PHP は実際にはインデックス付き配列と連想配列を区別しないため、PHP 配列には整数キー名と文字列キー名の両方を含めることができます。
指定された値にキーが指定されていない場合は、現在の最大の整数インデックス値が取得され、新しいキーはその値に 1 を加えたものになります。指定したキー名にすでに値が設定されている場合、その値は上書きされます。
例 #3 整数と文字列のキー名の混合
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array); ?>
上記のルーチンは出力します:
array(4) {
["foo"]=>
string(3) "bar"
["bar"]=>
string(3) "foo"
[100]=>
int(-100)
[-100]=>
int(100)
}
key はオプションです。指定しない場合、PHP は、以前に使用した最大の整数キーに 1 を加えたものを新しいキーとして自動的に使用します。
例 #4 キー名のないインデックス配列
<?php $array = array("foo", "bar", "hallo", "world"); var_dump($array); ?>
上記のルーチンは出力します:
array(4) {
[0]=>
string(3) "foo"
[1]= > ;
string(3) "bar"
[2]=>
string(5) "hallo"
[3]=>
string(5) "world"
}
特定の単位のみを選択することもできますキー名を指定し、他は空白のままにします:
例 #5 一部のユニットのみにキー名を指定します
<?php $array = array( "a", "b", 6 => "c", "d", ); var_dump($array); ?>
上記のルーチンは出力します:
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[6]=>
string(1) "c"
[7]=>
string(1) "d"
}
可以看到最后一个值 "d" 被自动赋予了键名 7。这是由于之前最大的整数键名是 6。
用方括号语法访问数组单元 ¶
数组单元可以通过 array[key] 语法来访问。
Example #6 访问数组单元
<?php $array = array( "foo" => "bar", 42 => 24, "multi" => array( "dimensional" => array( "array" => "foo" ) ) ); var_dump($array["foo"]); var_dump($array[42]); var_dump($array["multi"]["dimensional"]["array"]); ?>
以上例程会输出:
string(3) "bar"
int(24)
string(3) "foo"
Note:
方括号和花括号可以互换使用来访问数组单元(例如 $array[42] 和 $array{42} 在上例中效果相同)。
自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。
自 PHP 5.5 起可以用数组间接引用一个数组原型。
Example #7 数组间接引用
<?php function getArray() { return array(1, 2, 3); } // on PHP 5.4 $secondElement = getArray()[1]; // previously $tmp = getArray(); $secondElement = $tmp[1]; // or list(, $secondElement) = getArray(); ?>
以上がPHPで配列を定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。