SAK 図書館
PHP 基礎編8 - 配列操作、sort、asort、ksort、array_push、array_shift
■配列変数代入 ・array を使用すると簡単に配列変数に代入できる。 $a = array('abc', 'def', 'ghi'); ・個別に代入すると、次のようになる。 $a[0] = 'abc'; $a[1] = 'def'; $a[2] = 'ghi'; ・添字を省略すると、自動的に最後の配列の次に代入されていく。 $a[] = 'jkl'; $a[] = 'mno'; ■配列変数分解 ・list を使用すると簡単に配列変数を分解できる。 $d = array('abc', 'def', 'ghi'); list($a, $b, $c) = $d; ・個別に代入すると、次のようになる。 $a = $d[0]; $b = $d[1]; $c = $d[2]; ■文字列分解 ・文字列はセット変数を添字でアクセスすると分解参照できる。 $a[0] = '0'、$a[1] = '1' のように参照可能である。 但し、逆は、単に Array と返ってくるので結合参照としては使えない。 $a = '0123'; print "<P>$a[0]</P>\n"; print "<P>$a[1]</P>\n"; print "<P>$a[2]</P>\n"; print "<P>$a[3]</P>\n"; ■配列数取得 ・count で配列数を取得できる。 添字上限としては、count($a) - 1 となる。 $a = array('abc', 'def', 'ghi'); $ct = count($a); ■配列列挙参照 ・次の配列があるとする。 $a = array('abc', 'def', 'ghi'); ・PHP3 では、次のように reset、while、each を使用する。 $tmp[0] は添字、$tmp[1] が実データとなる。 reset($a); while ($tmp = each($a)) { print "<P>$tmp[0] - $tmp[1]</P>\n"; } ・PHP4 では、次のように foreach を使用する。 $tmp が実データとなる。 foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■連想配列列挙参照 ・次の連想配列があるとする。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); ・PHP3 では、次のように reset、while、each を使用する。 $tmp[0] はキー、$tmp[1] が実データとなる。 reset($a); while ($tmp = each($a)) { print "<P>$tmp[0] - $tmp[1]</P>\n"; } ・PHP4 では、次のように foreach を使用する。 $key はキー、$tmp が実データとなる。 foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■配列ソート(昇順) ・配列を sort で昇順ソートできる。 $a = array('abc', 'def', 'ghi'); sort($a); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列ソート(降順) ・配列を rsort で降順ソートできる。 $a = array('abc', 'def', 'ghi'); rsort($a); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■連想配列ソート(昇順) ・連想配列を asort で昇順ソートできる。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); asort($a); foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■連想配列ソート(降順) ・連想配列を arsort で降順ソートできる。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); arsort($a); foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■連想配列キーソート(昇順) ・連想配列を ksort でキー昇順ソートできる。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); ksort($a); foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■連想配列キーソート(降順) ・連想配列を krsort でキー降順ソートできる。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); krsort($a); foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■配列末尾追加 ・配列の末尾から array_push でデータを追加できる。 データは複数指定することもできる。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); array_push($a, 'data1', 'data2'); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列末尾削除 ・配列の末尾から array_pop でデータを削除できる。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); array_pop($a); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列先頭追加 ・配列の先頭から array_unshift でデータを追加できる。 データは複数指定することもできる。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); array_unshift($a, 'data1', 'data2'); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列先頭削除 ・配列の先頭から array_shift でデータを削除できる。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); array_shift($a); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列連結 ・別の配列を結合するには array_merge を使用する。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); $b = array('123', '456', '789'); $a = array_merge($a, $b); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列一部切り出し ・配列の一部分を切り出すには、 array_slice($a, 1, 1); | |_ 要素数 |_ 切り出し開始添字 を使用する。 PHP4 の機能である。 $a = array('abc', 'def', 'ghi'); $a = array_slice($a, 1, 1); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■配列要素反転 ・配列の要素を逆順にするには array_reverse を使用する。 $a = array('abc', 'def', 'ghi'); $a = array_reverse($a); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; } ■連想配列要素反転 ・連想配列の要素を逆順にするには array_reverse($a, True) を使用する。 $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi'); $a = array_reverse($a, True); foreach ($a as $key => $tmp) { print "<P>$key - $tmp</P>\n"; } ■PHP 基礎編資料
■PHP + MySQL 編資料
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料