二次元配列

二次元配列の説明です。
基本的に二次元配列は無く、array で定義した要素に array を格納します。

プログラムの作成-1

二次元配列のプログラムです。
Array2_1.php のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
    $grp1 = array( "りんご", "みかん", "ばなな", "ぶどう" );
    $grp2 = array( "キャベツ", "人参", "大根", "ごぼう" );
    $grp3 = array( "まぐろ", "さけ", "いわし", "さば" );
    $ar = array( $grp1, $grp2, $grp3 );
    print_r($ar);
    print $ar[0][2] . "\r\n";
    print $ar[2][3] . "\r\n";
?>

【実行画面】
コマンドプロンプトを起動して Array2_1.php をコンパイルします。
C:\Windows\System32>cd c:\DATA\PHP
C:\DATA\PHP>php Array2_1.php
Array
(
    [0] => Array
        (
            [0] => りんご
            [1] => みかん
            [2] => ばなな
            [3] => ぶどう
        )

    [1] => Array
        (
            [0] => キャベツ
            [1] => 人参
            [2] => 大根
            [3] => ごぼう
        )

    [2] => Array
        (
            [0] => まぐろ
            [1] => さけ
            [2] => いわし
            [3] => さば
        )

)
ばなな
さば

プログラムの説明

  1. 配列 $grp1, $grp2, $grp3 を定義します。
        $grp1 = array( "りんご", "みかん", "ばなな", "ぶどう" );
        $grp2 = array( "キャベツ", "人参", "大根", "ごぼう" );
        $grp3 = array( "まぐろ", "さけ", "いわし", "さば" );
    
  2. 配列 $ar の要素として $grp1, $grp2, $grp3 を設定します。
    print_r($ar) で二次元配列を印字します。
        $ar = array( $grp1, $grp2, $grp3 );
        print_r($ar);
    
  3. 添え字を付けて参照する例です。
        print $ar[0][2] . "\r\n";
        print $ar[2][3] . "\r\n";
    
  4. 配列 $ar に添え字を付けて $grp1, $grp2, $grp3 を代入することも出来ます。
        $ar[0] = $grp1;
        $ar[1] = $grp2;
        $ar[2] = $grp3;
        print_r($ar);
    

プログラムの作成-2

二次元配列を使って3×3の魔方陣を表示します。
魔方陣の説明と解法は 奇数の魔方陣を作成する を参照して下さい。
mahoujin.php のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
    $y= 2;
    $x= 1;
    for($n=1; $n<=9; $n++)
    {   $t[$y][$x]= $n;
        $yw= ($y+1)%3;
        $xw= ($x+1)%3;
        if ($t[$yw][$xw]>0)
        {   $yw= ($y+2)%3;
            $xw= $x;
        }
        $y= $yw;
        $x= $xw;
    }
    for($y=0; $y<3; $y++)
    {   for($x=0; $x<3; $x++)
            print($t[$y][$x] . "  ");
        print("\r\n");
    }
?>

【実行画面】
コマンドプロンプトを起動して mahoujin.php をコンパイルします。
mahoujin.php の実効結果です。
縦横斜めの数字を足すと、全て15になっています。
C:\DATA\PHP>php mahoujin.php
4  9  2
3  5  7
8  1  6

C:\DATA\PHP>

プログラムの説明

  1. $y= 2; $x= 1; で下段中央をポイントします。
  2. for($n=1; $n<=9; $n++) で3×3=9回ループします。
  3. ポイントされている場所に $n を格納して、右下に移動します。
        {   $t[$y][$x]= $n;
            $yw= ($y+1)%3;
            $xw= ($x+1)%3;
    
  4. 右下が埋まっているときは、上に移動します。
            if ($t[$yw][$xw]>0)
            {   $yw= ($y+2)%3;
                $xw= $x;
            }
    
  5. 詳しい説明は 奇数の魔方陣を作成する を参照して下さい。

前田稔の超初心者のプログラム入門
PHP Program