連想配列
キーが文字列の配列
配列の添字が文字列になっているものを連想配列と呼びます。
連想配列とは
連想配列とは、配列の値を取り出すキーに文字列を用いる配列のことです。 単純な配列だと、$favorites[0] のように、何番めの要素か数字で指定しますね。 連想配列では、数字の代わりに、$favorites["food"] のように文字列をキーとして、対応する値を得ることができます。
連想配列の利点
第一の利点は、人間にとって参照しやすい、ということがあげられます。 キーに適切な意味を与えておけば、配列の引数の順序で参照するよりも楽になります。
$accessories = array ( "necklace" => "pearl", "wallet" => "python", "ring" => "ruby" );
上の例のように定義しておけば、$accessories["ring"] で ruby を得ることができます。 配列の順序をプログラマーが記憶しておく必要がありません。
キーと値のペアを取得するには
キーと値をペアで取得する方法はいくつかあります。 良く使われるのは、eachとlistを用いる方法、foreachを用いる方法です。
eachとlistを用いる
eachとlistを用いる例は、下のようになります。
list( $key, $value ) = each( $accessories ) ;
上のように記述すると、$keyにキーが、$valueに値が格納されます。 内部ポインタが指している箇所のキーと値が格納されます。
内部ポインタとは、PHPが配列に付けている目印のようなものです。each関数は、配列から読み出し、目印を次の要素に移動させます。 このため、eachを繰り返し用いると、配列の要素を順に取得することができます。
while( list( $key, $value ) = each( $accessories )) { ループ処理 }
上のループ処理後は、内部ポインタが末尾になっています。 この配列に対して再度処理する場合は、resetで内部ポインタを戻す必要があるので注意しましょう。
foreachを用いる
foreachを用いる例は、下のようになります。
<?php foreach($accessories as $key => $value) { ループ処理 } ?>
foreach関数は内部ポインタをリセットして(先頭に戻して)から実行されます。
連想配列のソート
キーを用いてソートする場合は、ksortkrsortを利用します。ksortは昇順で、krsortは降順でソートします。
値を用いてソートする場合は、asortarsortを利用します。asortは昇順で、arsortは降順でソートします。 ※連想配列をsort、rsortでソートすると、単純な配列として処理される(キーと値の対応関係が失われる)ので注意しましょう。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.