6.PHP中的数组与数据结构

数组的分类

  • 索引数组:索引数组的索引值是整数。在大多数编程语言中,数组都具有数字索引,以0开始,依此递增。当通过位置来标识数组元素时,可以使用索引数组
  • 关联数组:关联数组以字符串作为索引值。在其他编程语言中非常少见,但在PHP中使用以字符串作为下标的关联数组非常方便。当通过名称来标识数组元素时,可以使用关联数组

数组的声明

直接为数组元素赋值即可声明数组。

<?php

$array_1[0]="s";    #为数组添加元素
$array_1[1]="i";

$array_2[0]="q";
$array_2[1]="u";
$array_2["3"]="ok";

$ayyay_3[]="yes";   #为空使用默认下标1

print_r($array_1);  #打印整个数组
echo "<br/>";
print_r($array_2);
echo "<br/>";
print_r($ayyay_3);

#结果:
// Array ( [0] => s [1] => i )
// Array ( [0] => q [1] => u [3] => ok )
// Array ( [0] => yes )

?>

使用array()函数声明数组

  • 使用“=>”来指定下标
  • 如果不使用“=>”指定下标,则使用默认索引数组,索引从0开始
    <?php
        #创建数组
        $a=array("foo"=>"ni",12=>"hao");
        print_r($a);        #打印整个数组
        echo "<br/>";
        echo $a["foo"];       #利用数组下标进行访问
        echo " ";
        echo $a[12];
    ?>
  • 定义多维数组
<?php

$array=array(
    "第一组"=>array(1,2,3),
    "第二组"=>array(4,5,6)
);

echo $array["第一组"][0];      
echo "<br/>";
echo $array["第二组"][1];

#结果:
// 1
// 5

数组的遍历

for循环遍历

<?php

    $array=array(1,2,3,4,5);

    for ($i=0;$i<count($array);$i++){
        echo $array[$i]." ";
    }

    //1 2 3 4 5
?>

foreach语句遍历

image-20201026195646815

<?php
    #第一种语法格式
    $array=array(1,2,3,4,5);

    foreach($array as $value){
        echo $value." ";
    }

    //1 2 3 4 5
?>
<?php
    #第二种语法格式

    $array=array("name"=>"zhangsan","age"=>32);
    foreach ($array as $key => $value) {
        echo $key.":".$value."<br/>";
    }

    // name:zhangsan
    // age:32
?>

预定义数组

  • 预定义数组只是一种数组而已
  • 预定义数组不需要去声明,由系统提供
  • 这是一种全局数据,在函数中也可以访问,并且不需要使用global关键字来载入

image-20201026200606470

  • $_SERVER:是一个包含诸如头信息、路径和脚本位置的数组。数组的实体由Web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,或者产生了一些其他的新的信息。
  • $_ENV:$ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为PHP全局变量的。它们中的许多都是由PHP所运行的系统决定的,完整的列表是不可能的,需要査看PHP所在服务器的系统文档以确定其特定的环境变量。
  • $_GET:是通过 URL GET方法传递的变量组成的数组。它属于外部变量,即在服务器页面中通过$GET超全局数组获取URL或表单的GET方式传递过来的参数
<?php
    #url:http://127.0.0.1/index.php?user=siqu
    $array=array("name"=>"zhangsan","age"=>32);

    foreach ($array as $key => $value) {
        echo $key.":".$value."<br/>";
    }
    echo $_GET["user"];     #获取url参数中的user变量的值

// name:zhangsan
// age:32
// siqu
?>
  • $_POST:数组是通过HTTP POST方法传递的变量组成的数组。$_POST和$_GET 数组之一都可以保存表单提交的变量,使用哪一个数组取决于提交表单时,在表单 form标记中的 method属性使用的方法是POST还是GET。但使用$_POST 数组只能访问以POST方法提交的表单数据。
<!DOCTYPE html>
<html>
<head>
    <title>打印表格</title>
</head>
<body>
    <form action="add.php" method="POST">
        姓名:<input type="input" name="name"><br/>
        <input type="submit" name="添加">
    </form>
</body>
</html
#add.php文件
<?php
    if($_POST["name"]){
        echo "你的名字是:".$_POST["name"];
    }else{
        echo "我没有收到";
    }
?>

image-20201026202623350

image-20201026202633685

  • $_REQUEST: 此关联数组包含$_GET,$_POST 和$_COOKIE中的全部内容。如果表单中有一个输入域的名称为name="address",表单是通过POST方法提交的,则address 文本输入框中的数据保存在$_POST["address"]中。如果表单是通过GET方法提交的,数据将保存在$_GET["address"]中。不管是 POST还是 GET方法提交的所有数据都可以通过$_REQUEST[ "address"]获得。但$_REQUEST的速度比较慢,不推荐使用。

其他数组将在后面内容中进行大量篇幅描述

© 版权声明
THE END
喜欢就支持以下吧
点赞1 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容