php 数组基础/练习

编程入门 行业动态 更新时间:2024-10-24 12:20:49

php <a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组基础/练习"/>

php 数组基础/练习

数组

练习在最后

数组概述

概述与定义

  • 数组中存储键值对

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

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

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

  • <?php?>标签前加<pre>标签可格式化输出

  • 解决中文乱码问题,在页面 头部加标签<meta charset = "utf-8">

  • 定义数组(array)

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

数组特点

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

数组分类

  • 索引数组

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

  • 关联数组

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

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

    <?php$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("<br />");print_r($stu['score']);print_r("<br />");var_dump($stu);?>
    

数组的创建

直接赋值

  • 语法

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

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

array 结构

  • 语法

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

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

  • 创建第四个学生信息

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

输出

  • print_r()echo 类似

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

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

    <?php$test[] = false;$test[] = true;print_r($test);print_r('<br />');var_dump($test);?>
    

多维数组

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

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

  • 一个班四个学生的信息

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

    <?php$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 "<pre>";print_r($class);?>
    

数组元素的操作

数组元素的访问

  • 通过 key 找到数组中的 value

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

  • 多维数组的访问

    <?php$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 "<pre>";echo "zhangsan's score is {$class[0]['score']}";?>
    

元素操作

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

  • 修改、增加,直接赋值

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

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

数组的遍历(循环)

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

for 循环

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

  • 索引数组遍历

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

foreach 语句

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

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

  • 基本结构

    遍历值

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

  • 访问键值对

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

  • 多维数组遍历

    <?php$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 "<pre>";foreach($class as $k => $v){foreach($v as $key => $value){// 取 $class 数组的 value(内部数组名)echo $value."<br />";}echo '<br />';}?>
    

  • 注意

    • 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 "<table border=1>";echo"<tr ><td colspan = '4' align='center'>学生信息</td></tr>";echo "<tr><td>姓名</td><td>性别</td><td>年龄</td><td>成绩</td></tr>";foreach($class as $k => $v) {// $class 的 $value 值为 class 内的多个 stu数组echo "<tr>";// 循环到每个 student 时建立一行表格foreach($v as $key => $value) {echo "<td>";// 循环到每个 stu 的每个属性时建立一个单元格echo $value;echo "</td>";}echo "</tr>";
}
echo "</table>";
?>

效果

更多推荐

php 数组基础/练习

本文发布于:2023-12-03 20:22:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657252.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   基础   php

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!