array関数は配列を作成します。
array(var,...)配列とは、仕切りのある箱と考えてください。箱で区切られた各要素には、番号または任意の文字列で名前をつけることができます。
<?php
$animal1 = array( "犬", "猫", "馬" );
$animal2 = array( "dog" => "犬", "cat" => "猫", "hose" => "馬" );
?>
上記のスクリプトでは、$animal1はインデックスが0からなる連番で作成される配列、$animal2はインデックスに文字列が割り当てられる連想配列が作成されます。
このまま実行しても何も表示されないので、以下の用にvar_dumpを使用して各変数がどのようになっているか見てみましょう。var_dump();の「()かっこ」の中に変数を入れるとその中身を確認することができます。
<?php
$animal1 = array( "犬", "猫", "馬" );
$animal2 = array( "dog" => "犬", "cat" => "猫", "hose" => "馬" );
var_dump($animal1);echo"<br />";
var_dump($animal2);
?>
array(3) { [0]=> string(2) "犬" [1]=>
string(2) "猫" [2]=> string(2) "馬" }
array(3) { ["dog"]=>string(2) "犬" ["cat"]=>
string(2) "猫" ["hose"]=> string(2) "馬" }
変数$animal1の「array(3)」の「3」とは要素の数を意味しています。「犬」、「猫」、「馬」なので「3」となります。「string(2)」とは文字のバイト数を意味しています。もし、ここで「犬犬」としてあれば「string(4)」となります。「[0]=> string(2) "犬"」の「[0]」はインデックス番号を意味しています。インデックス番号は自動で0から割り当てられます。以上から「犬」の例では犬文字列はインデックス番号0の2バイト文字だよーといっています。それが3番の馬まで連続で続いています。
変数$animal2の「["dog"]=> string(2) "犬"」の「["dog"]」はスクリプトの「 "dog"」を意味しています。「string(2)」は変数$animal1と同じ意味です。変数$animal1と大きな違いは変数$animal1は[]が番号が割り当てられているのに対し、変数$animal2は連想される文字列が割り当てられています。
count関数は、引数として与えられる配列の要素の数を返します。
count(array)
<?php
$animal = array( "犬", "猫", "馬" );
echo count( $animal );
?>
3
前述のスクリプトでは、count関数によって配列arrayの要素の数を取得しています。"犬"、"猫"、"馬"と3つあるので3となります。
sort関数は、配列の要素を数字やアルファベットの昇順に並べ替えることができます。
sort(array)
<?php
$figure = array( "5", "2", "3", "1", "4" );
sort( $figure );
while( list( $key, $val ) = each( $figure ) ) {
echo "$val<br />¥n";
}
?>
1 2 3 4 5
sort関数によって、"5","2","3","1","4"とバラバラになって並んでいる数値が、"1","2","3","4","5"と昇順に並び替えられていることがわかります。
配列の値に重複して存在している値がある場合、array_unique関数を使用して重複している値を取りの除くことができます。
array_unique関数は、引数として与えられた配列から重複する値を取り除き、その重複している値が取り除かれた状態で配列を返します。
array_unique(array)
<?php
$animal = array( "dog", "cat", "hose", "monkey", "pig", "dog" );
$unique = array_unique( $animal );
while( list( $key, $val ) = each( $unique ) ) {
echo "$val<br />¥n";
}
?>
dog cat hose monkey pig
前述のスクリプトでは重複している"dog"が取り除かれて出力されていることがわかります。
2つの配列があった場合に、array_diff関数を使用し、一方の配列には存在して、もう一方の配列には存在しない要素を抽出することができます。
array_diff関数は、1つ目の引数の配列要素で、2つ目以降の引数の配列に存在しない値を返します。
array_diff(array)
pig
前述のスクリプトでは、「$diff = array_diff( $animal1, $animal2 );」で「$animal1」と「$animal2」が比較されています。結果、1つ目の配列$animal1の要素である「pig」が、2つ目の配列$animal2に存在しないので、配列diffに返されpigが出力されています。