第五章 php数组(数组创建、数组遍历)

版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/85225352

数组分类

  • 索引数组:索引值为整数的数组
  • 关联数组:索引值为字符串的数组,使用字符串作为索引,这使得编程更加人性化,这在其他编程中非常少见,但是在php中会被大量使用在开发过程中,使用起来极其方便

名字如果取的是整形:那么这个数组就是索引数组

名字如果是字符串类型:那么这个数组就是关联数组

比如:

0                  name           "李广"

1                  grade           90分

2                  sex               男

3                  height           173cm

索引数组     关联数组 

数组创建

php中创建数组非常灵活,与其他编程语言不同的是php不需要创建数组时指定数组大小,甚至不需要在使用数组前声明,也可以在一个数组中存储任何类型的数据

  • 直接为数组元素赋值即可创建

$变量名[索引值]=数据内容;

索引值可以是整数也可以是字符串,也可以不写(默认为索引数组) 

  • 使用array( )语言结构创建数组

$变量名=array(key1=>value1,.......) ;

//索引数组
$student[0]=10;
$student[1]='ROBIN.FANG';
$student[2]=true;
$student[3]=60.5;

//输出数组具体内容需要函数 print_r($studnet)或者var_dump($student);
//索引数组
<?php
    $student= array(10,'ROBIN.FANG',true,60.5);
    var_dump($student);

?>
//索引数组
<?php
    $student 1=array(
        0=>10,
        1=>'ROBIN.FANG',
        2=>true,
        3=>60.5
    );

?>
//关联数组
<?php
    $student1['num']=10;
    $student1['name']='ROBIN.FANG';
    $student1['sex']=true;
    $student1['grade']=60.5;
    var_dump($student1);

echo $student[1]; //ROBIN.FANG
?>

索引数组和关联数组都有两种数组写法,可以直接为数组赋值创建数组或者用array()结构创建数组

//关联数组
<?php
$student=array(
    "number"=>10,
    "name"=>"robin",
    "sex"=>true,
    "grade"=>55    
);

var_dump($student);

?>
//数组中可以再放数组(二维数组)
//可以将很多学生的信息放在一个变量里,每个学生是一个数组
<?php
    $students=array(
        0=>array(1,"ROBIN.FANG",true,60.5),
        1=>array(2,"David",true,88),
        2=>array(3,"Mina",false,80)   
    );

?>

//输出二维数组的单独元素用 echo $student[0][1]

遍历数组

php中很少需要自己动手将大量的数据赋值到数组变量中,而是通过调用其他函数返回结果集,这些结果集很多情况下都是数组类型,使用数组类型返回的目的是将相互关联的数据组织在一起形成集合,以方便批量处理,所有实际工作中数组遍历需求较多

echo count($arr);  //获取数组元素的个数

echo count($arr,1);  //获取多维数组的元素个数

//一维数组遍历
$arr=array('a','b','c','d','e','f');

for($i=0;count($arr);$i++){
    echo $arr[$i].'<br/>';
}
//多维数组遍历
$arr1=array(
    array(1,2,3),
    array(4,5,6)
)
echo count($arr1,1); //2+6=8

关联数组的遍历方法:

  • for循环:用的较少,因为有缺陷
  • foreach(数组变量 as 变量){

            每次循环执行的语句,变量1代表当前正在经历的数据}

$arr1=array(
    'name'=>"ROBIN.FANG",
    'num'=>10
);

foreach($arr1 as $value){
    echo $value.'<br/>';
}

foreach(数组变量 as 变量1=>变量2){

            每次循环执行的语句

            变量1代表当前正在经历的数据的索引值

            变量2代表当前正在经历访问的数据

}

foreach($arr1 as $key=>$value){
    echo $key."=>".$value.'<br/>';
}

特殊情况:

//无规律的二维数组
$arr=array(
    'a',
    'b',
    'c',
    'd',
    array(
        1,2,3,4,5
    )
);

//此问题用递归思想解决

foreach($arr as $val){
    var_dump($val);
}
//有规律的二维数组

<?php
    $arr=array(
        array('a','b','c','d'),
        array('a','b','c','d','e','f'),
        array('a','b','c','d','f'),
        array('a','b','c','d')
    );

foreach($arr as $val1){
    foreach($val1 as $val2){
        echo $val2.'<br/>';
    }

}

?>

非常有规律的数组(格式是固定的)

<?php
    $student=array(
        array('ROBIN',1,true,77),
        array('Jack',2,true,89),
        array('Mina',3,false,82)
    );

    echo'<table border=1>';
    foreach ($students as $val1){
        if($val[2]==true){
            $val[2]='男';
        }
        else{
            $val[2]="女";
        }

     echo"<tr><td>{$val[0]}</td><td>{$val[1]}</td>
          <td>{$val[2]}</td><td>{$val[3]</td></tr>}";
    }
    
    echo"</table>";

?>

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/85225352