php 数组基础/练习

数组

练习在最后

数组概述

概述与定义

  • 数组中存储键值对

    数组实际上是一个有序映射 key-value,可将其当成真正的数组、列表(向量)、散列表、字典、集合、栈、队列等

  • 数组中的元素可以是任意类型的数据对象(可以嵌套数组)

  • 输出数组时不能使用 echo 语句,可以使用 print_r() 函数代替

  • 标签前加

    标签可格式化输出

  • 解决中文乱码问题,在页面 头部加标签

  • 定义数组(array)

    $stu[]
    
    
        $name = "zhangsan";
    	$age = 18;
    	$score = 59.9;
    	$sex = true;
    
    	$stu[] = $name;
    	$stu[] = $age;
    	$stu[] = $score;
    	$stu[] = $sex;
    	print_r($stu);
    	print_r("
    "
    ); print_r($stu[1]); print_r("
    "
    ); var_dump($stu); ?>

    php 数组基础/练习_第1张图片

数组特点

  • 键值对(key-value)
  • 键,key,存储在数组中,变量的编号(0 开始)
  • 值,value,存储在 数组中,变量的值
  • 数组中的元素可以是任意类型的数据对象
  • 复合数据类型,非线性(一个数组对应多个值)

数组分类

  • 索引数组

    变量的"编号"是整数,整数不具备一定的语义

  • 关联数组

    变量的"编号"用字符串表示,可以具备一定的语义

  • 不指定键名时默认为索引数组

    
        $name = "zhangsan";
    	$age = 18;
    	$score = 59.9;
    	$sex = true;
    
    	$stu['name'] = $name;
    	$stu['age'] = $age;
    	$stu['score'] = $score;
    	$stu['sex'] = $sex;
    	print_r($stu);
    	print_r("
    "
    ); print_r($stu['score']); print_r("
    "
    ); var_dump($stu); ?>

    php 数组基础/练习_第2张图片

数组的创建

直接赋值

  • 语法

    $变量名称[]=数据;
    // 创建索引数组
    $变量名称[key]=数据;
    // 创建关联数组
    
  • 创建第二个学生信息

    
        $stu2['name']="lisi";
        $stu2['sex']=false;
        $stu2['age']=22;
        $stu2['score']=99.9;
    	echo "
    ";
    	// 
    保持文本格式的预格式化文本标签
        var_dump($stu2);
        ?>
    

    php 数组基础/练习_第3张图片

array 结构

  • 语法

    $变量 = array(变量1,变量2,...);
    //或
    $变量 = array(
        'key1' => value1,
        'key2' => value2,
        ...
    )
    
  • 创建第三个学生信息

    
        $stu3 = array("wangwu",true,25,0);
    	echo "
    ";
    	var_dump($stu3);
        ?>
    

    php 数组基础/练习_第4张图片

  • 创建第四个学生信息

    
        $stu4 = array(
        'name' => "july",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	echo "
    ";
    	print_r($stu4);
        ?>
    

    php 数组基础/练习_第5张图片

输出

  • print_r()echo 类似

    当输出为 bool 类型的 true 时,输出 1

    当输出为 bool 类型的 false 时,不输出

    
    	$test[] = false;
    	$test[] = true;
    	print_r($test);
    	print_r('
    '
    ); var_dump($test); ?>

    php 数组基础/练习_第6张图片

多维数组

  • 数组中的元素可以是任何类型的数据,当数组中的元素为数组时为多维数组

多维数组创建–一个班四个学生为例

  • 一个班四个学生的信息

  • 定义完学生数组再定义班级数组,先定义数组内元素的数组

    
    	$stu1 = array(
        'name' => "zhangsan",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	$stu2 = array(
        'name' => "lisi",
    	'sex' => false,
        'age' => 22,
        'score' => 89
    );
    	$stu3 = array(
        'name' => "wangwu",
    	'sex' => true,
        'age' => 26,
        'score' => 59.9
    );
    	$stu4 = array(
        'name' => "jucy",
    	'sex' => false,
        'age' => 19,
        'score' => 98
    );
    	$class = array($stu1,$stu2,$stu3,$stu4);
    	echo "
    ";
    	print_r($class);
        ?>
    

    php 数组基础/练习_第7张图片

数组元素的操作

数组元素的访问

  • 通过 key 找到数组中的 value

    
    	$stu1 = array(
        'name' => "zhangsan",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	echo "
    ";
    	echo "zhangsan's score is {$stu1['score']}";
    	// 引号中的变量要用 {} 括起来
    ?>
    

    php 数组基础/练习_第8张图片

  • 多维数组的访问

    
    	$stu1 = array(
        'name' => "zhangsan",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	$stu2 = array(
        'name' => "lisi",
    	'sex' => false,
        'age' => 22,
        'score' => 89
    );
    	$stu3 = array(
        'name' => "wangwu",
    	'sex' => true,
        'age' => 26,
        'score' => 59.9
    );
    	$stu4 = array(
        'name' => "jucy",
    	'sex' => false,
        'age' => 19,
        'score' => 98
    );
    	$class = array($stu1,$stu2,$stu3,$stu4);
    	echo "
    ";
    	echo "zhangsan's score is {$class[0]['score']}";
        ?>
    

    php 数组基础/练习_第9张图片

元素操作

  • 读取:通过 key 捕获数组中的 value

  • 修改、增加,直接赋值

  • 删除:PHP中删除数组元素意义不大,可置之不理

    
    	$stu1 = array(
        'name' => "zhangsan",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	$stu1['score'] = 60;
    	// 将原成绩 46 修改为 60
    	echo "
    ";
    	print_r($stu1);
        ?>
    

    php 数组基础/练习_第10张图片

数组的遍历(循环)

  • 数组中的每个元素都访问一次

for 循环

  • 缺点:使用 for 循环遍历数组依赖 key 元素的自然数规律(索引数组)

  • 索引数组遍历

    
        $stu = array("wangwu",true,25,0);
    	echo "
    ";
    	for($i = 0 ; $i < count($stu) ; $i++){
            // count($stu) 计算数组长度
            echo $stu[$i]."
    "
    ; } ?>

    php 数组基础/练习_第11张图片

foreach 语句

  • foreach 语法结构 提供了数组遍历的简单方式

  • foreach 这种语言结构是专门来遍历数组的,foreach 是一种循环,不需要额外计时器(数组中有多少个元素,循环就执行多少次)

  • 基本结构

    遍历值

    foreach($arr as $key){
        echo $key;
    }
    
    foreach($arr as $key => $value){
        // 代码块
    }
    
    
    	$stu = array(
        'name' => "lisi",
    	'sex' => false,
        'age' => 22,
        'score' => 89
    );
    	foreach($stu as $key => $value){
            echo $value."
    "
    ; } ?>

    php 数组基础/练习_第12张图片

  • 访问键值对

    
    	$stu = array(
        'name' => "lisi",
    	'sex' => false,
        'age' => 22,
        'score' => 89
    );
    	foreach($stu as $key => $value){
            echo $key."=>".$value."
    "
    ; } ?>

    php 数组基础/练习_第13张图片

  • 多维数组遍历

    
    	$stu1 = array(
        'name' => "zhangsan",
    	'sex' => true,
        'age' => 23,
        'score' => 46
    );
    	$stu2 = array(
        'name' => "lisi",
    	'sex' => false,
        'age' => 22,
        'score' => 89
    );
    	$stu3 = array(
        'name' => "wangwu",
    	'sex' => true,
        'age' => 26,
        'score' => 59.9
    );
    	$stu4 = array(
        'name' => "jucy",
    	'sex' => false,
        'age' => 19,
        'score' => 98
    );
    	$class = array($stu1,$stu2,$stu3,$stu4);
    	echo "
    ";
    	foreach($class as $k => $v){
            foreach($v as $key => $value){
            // 取 $class 数组的 value(内部数组名)
                echo $value."
    "
    ; } echo '
    '
    ; } ?>

    php 数组基础/练习_第14张图片

  • 注意

    • foreach 是用来遍历数组的循环语言结构,数组中有多少个元素,该语言结构就会循环执行几次

    • foreach 语言结构中,临时变量的名字可以变化,但是语言结构不能改变

      foreach($class as $k => $v){}
      // 上述代码中 $k 和 $v 中 $后的变量名 可以任意命名
      // 但 => 不可改变
      // $class 为要遍历的目标数组
      

练习

将班级内的成员属性以表格形式输出

<meta charset='utf-8'>
<pre>
<?php
    $stu1 = array(
        "name"=> "zhangsan",
        "sex"=> "1",
        "age"=> "18",
        "score"=> "99.99"
    ) ;
    $stu2 = array(
        "name"=> "lisi",
        "sex"=> "0",
        "age"=> "19",
        "score"=> "59.99"
    ) ;
    $stu3 = array(
        "name"=> "wangwu",
        "sex"=> "1",
        "age"=> "18",
        "score"=> "60"
    ) ;
    $stu4 = array(
        "name"=> "zhaoliu",
        "sex"=> "1",
        "age"=> "23",
        "score"=> "65"
    ) ;
    $class = array($stu1,$stu2,$stu3,$stu4) ;
    echo "";echo"";echo"";foreach($classas$k=>$v){// $class 的 $value 值为 class 内的多个 stu数组echo"";// 循环到每个 student 时建立一行表格foreach($vas$key=>$value){echo"";}echo"";}echo"
学生信息
姓名性别年龄成绩
"; // 循环到每个 stu 的每个属性时建立一个单元格 echo $value; echo "
"
; ?>

效果

php 数组基础/练习_第15张图片

你可能感兴趣的:(PHP,php,android,开发语言)