九:PHP二维数组

1.定义
数组的元素本身仍然是数组的数组成为二维数组,可以把二维数组当成一个矩阵,或者是一个具有宽度和高度或者行和列的网格。一维数组只在一行或者一列上显示,二维数组则像网格一样有好几行和好几列。
2.创建一个简单的二维数组

// 第一种方式
$students = array(
    array('aaa',18,'man'),
    array('bbb',19,'woman'),
    array('ccc',17,'man')
    );
print_r($students);
打印结果:Array
        (
            [0] => Array
                (
                    [0] => aaa
                    [1] => 18
                    [2] => man
                )
        
            [1] => Array
                (
                    [0] => bbb
                    [1] => 19
                    [2] => woman
                )
        
            [2] => Array
                (
                    [0] => ccc
                    [1] => 17
                    [2] => man
                )
        
        )
// 第二种方式
$x=2;
$y=3;
$a=array_fill(0,$x,array_fill(0,$y,array()));
print_r($a); 
打印结果:Array(
            [0] => Array
                (
                    [0] => Array
                        (
                        )

                    [1] => Array
                        (
                        )

                    [2] => Array
                        (
                        )

                )

            [1] => Array
                (
                    [0] => Array
                        (
                        )

                    [1] => Array
                        (
                        )

                    [2] => Array
                        (
                        )

                )
        )

3.打印内外数组长度的方法

$students = array(
   array('aaa',18,'man'), //第0行
   array('bbb',19,'woman'), //第1行
   array('ccc',17,'man')   //第2行
   );
echo count($students);  //打印外数组长度的方法,即student的长度,是里边的三个数组,结果是3,这个是外层的数组student的个数。
// count($students);通俗地讲是二维数组的行数
echo count($students[1]);   //3
echo count($students[2]);   //3
echo count($students[0]);   //打印内数组的长度的方法,即student的第1个元素的长度,结果是3

4.打印数组元素的方法

  • 没有键的情况
$students = array(
    array('aaa',18,'man',), //第0行
    array('bbb',19,'woman','green'), //第1行
    array('ccc',17,'man','red') //第二行
);

//打印二维数组的第一种方法,此方法很麻烦,适合下标为0,1,2...的情况
echo $students[0][0]."|".$students[0][1]."|".$students[0][2]."
"; echo $students[1][0]."|".$students[1][1]."|".$students[1][2]."
"; echo $students[2][0]."|".$students[2][1]."|".$students[2][2]."
"; //打印数组的第二种方法:for循环,两重循环打印二维数组 for ($i=0; $i < count($students); $i++) { for ($j=0; $j < count($students[$i]); $j++) { //这里用$i的原因:就算内层数组里元素的个数各不相同也可以打印的出来 echo $students[$i][$j]."|"; } echo "
"; //外层循环3次,每次加1个换行 } 结果: aaa|18|man bbb|19|woman ccc|17|man aaa|18|man| bbb|19|woman|green| ccc|17|man|red|
  • 有自定义键的情况
$students = array(
    array('name'=>'aaa', 'age'=>18, 'sex'=>'man',), //第0行
    array('name'=>'bbb', 'age'=>19, 'sex'=>'woman', 'color'=>'green'), //第1行
    array('name'=>'ccc', 'age'=>17, 'sex'=>'man', 'color'=>'red')   //第二行
);
// print_r($students);

//第一种方法:foreach
for ($i=0; $i  $value) {     //输出第0,1,2行的键和值
        echo $key."--".$value."|";  //每输出一次键值打印一个|
    }
    echo "
"; //每输出一行打印一个换行 } //第二种方法:list和each for ($i=0; $i "; }

你可能感兴趣的:(九:PHP二维数组)