Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

変数と配列

変数と配列について

配列を操作する関数

配列を作成する

array関数は配列を作成します。

array(var,...)
array関数で配列を作成

配列とは、仕切りのある箱と考えてください。箱で区切られた各要素には、番号または任意の文字列で名前をつけることができます。

<?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が出力されています。