配列
PHP ManualのArray部分を読む。
array()で作る配列のindexはintegerでもstringでも良いみたい。
<?php $arr = array("foo" => "bar", 12 => 1); echo $arr["foo"]; # bar echo $arr[12]; # 1 ?>
indexにintegerとstringが混同してるのが変な感じします。
hashだと思えばいいのか。
floatのkeyはintegerに変換されるようです。
<?php $arr = array(3.2 => 2); echo $foo[3]; # 2 ?>
valueにはすべてのtypeを持てる。
<?php $arr = array("somearray" => array(6 => 5, 13 => 2)); echo $arr["somearray"][13]; # 2 ?>
keyが指定されなかった場合は最も大きいintegerのkeyに1足した値がkeyとなる。
<?php $arr = array(2 => "a", 3, 2, 5 => 4); # array(2 => "a", 3 => 3, 4 => 2, 5 => 4); ?>
配列の代入。keyを指定しなかった場合はもっとも大きいintegerのkeyに1足した値がkeyとなる。valueを削除するにはunset()を使う。
<?php $arr = array(2 => 'a', 3, 2, 5 => 4); $arr[] = 'b'; echo $foo[6]; # b unset($foo[2]); # 要素の削除 unset($foo); # 配列fooを削除 ?>
unsetで要素を削除しても配列自身は残っている。このあとkeyを指定せずに代入すると、もともとあったkeyの中で最も大きいintegerのkeyに1足した値がkeyとなる。
<?php $arr = array(1,2,3,4); print_r($arr); # 全ての項目を削除 foreach ($arr as $i => $value){ unset($arr[$i]); } # 配列$arrに6を追加 $arr[] = 5; print_r($arr); ?>
結果は、
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
Array
(
[4] => 5
)