(五)PHP数组

[复制链接]
发表于 2025-11-8 15:08:00 | 显示全部楼层 |阅读模式
一,数组的概述


概念:  是一个能在单个变量中存储多个数据值的特殊变量

声明空数组的方式

<?php

          $arr = array();   // 声明一个空数组

            $arr = [];        // 声明一个空数组

?>

二,数组的分类

索引数组:    下标是整数

    $arr = [];
    $arr[0] = '张三';                   
    $arr[1] = '男';
    $arr[2] = 18;


关联数组:    下标是字符串

    $brr = [];
    $brr['name'] = '李四';   
    $brr['sex'] = '女';
    $brr['age'] = 20;

// 打印查看整个数组元素
// echo $arr; 报错,显示一个'Array' 数组不能被直接echo输出

var_dump($arr);   // 正确方式
print_r($brr);        // 正确方式


三,索引数组--元素的基本操作

<?php
        $arr = [];
            // 添加值
            $arr[] = 3;
            $arr[5] = 10;
            $arr[30] = 20;
            $arr[] = 30;

            // 删除值
           unset($arr[5]);
           $arr[2] = null;         // 删除一个值
           $arr = null;             // 删除整个数组

            // 修改值
            $arr[30] = 100;
   
            // 获取值
            echo $arr[0];    // 输出 张三

            注意:  当 [ ] 为空时, 会被理解为 索引下标最大值+1
?>


四,关联数组--元素的基本操作

<?php
          $brr = [ ];
        // 添加值
            $brr['height'] = '180cm';
        //使用变量代表下标
            $hometown= 'hometown';
            $brr[$hometown] = '新疆-克拉玛依区';

        // 删除值
        unset($brr['sex']);
        $brr['sex'] = null;     // 删除一个值
        $brr = null;              // 删除整个数组       

        // 修改值
        $brr['age'] = 20;

        // 获取值
        echo $brr['name']; // 输出 张三
       
            // 注意:
        unset( $brr );                // 销毁整个数组
        echo $brr[ name ];         // 报错, 常量未定义, 然后把 name 理解为字符串, 输出张三
?>


五,索引和关联混合数组

<?php
    $crr = [];
    $crr[] = 18; // 索引下标 是 0
    $crr['name'] = 'a';
    $crr['sex'] = 'b';
    $crr[] = 30; // 索引下标 是 1
?>


六,声明数组的方式


<?php

        $arr = array( 'name'=>'张三', 'sex'=>'男', 'age'=>18 );

            $brr = array( '李四', '女', 20 );            // 下标为 0  1  2

        $crr = array( 'name'=>'王五', '男', 21); // 下标为 name  0  1
?>


<?php
       
          $arr = [ 'name'=>'张三', 'sex'=>'男', 'age'=>18 ];

        $brr = [ '李四', '女', 20 ];       // 下标为 0  1  2

        $crr = [ 'name'=>'王五', '男', 21 ];   // 下标为 name  0  1

?>

七,数组遍历



遍历, 是指对数组中每一个元素,挨个去处理.


foreach
<?php
        $arr = ['a', 'b', 'c', 'd'];
        foreach( $arr as $k => $v ){

        }
        foreach( $arr as $k => $v ):

        endforeach;
        /*
            $arr  是要遍历的数组
            把数组中每一个元素拿出来  
                下标(键)    赋值给$k
                元素(值)    赋值给$v              
        */
?>


for
<?php
       
          $arr = ['a', 'b', 'c', 'd'];
        $n = count( $arr );
       
        for($i = 0; $i < $n; $i++){
                    echo $arr[ $i ];
        }

        /*
        数组的下标, 必须是连续的索引数组
        */

?>



八,多维数组


<?php
    $arr = array(
            array(10,20,30),
            array(1,2,3),
            array('apple','orange')
        );

    $arr = [
            ['hello',30,'world'],
            [20,'hello'],
            ['apple','pear','orange']
        ];
?>


<?php
$brr = array(
        array('name' => '王多朵','age'=>25,'sex'=>'男','classid'=>'必火网络学院'),
        array('name' => '吴子墨','age'=>21,'sex'=>'男','classid'=>'必火网络学院'),
        array('name' => '钱太多','age'=>22,'sex'=>'女','classid'=>'必火网络学院')
    );

$brr = [
        ['name' => '王多朵','age'=>25,'sex'=>'男','classid'=>'必火网络学院'],
        ['name' => '吴子墨','age'=>21,'sex'=>'男','classid'=>'必火网络学院'],
        ['name' => '钱太多','age'=>22,'sex'=>'女','classid'=>'必火网络学院']
    ];

//数组中的元素也可以使用变量
$a = ['a', 'b', 'c'];
$b = ['d', 'e', 'f'];
$c = ['g', 'h', 'i'];

$crr = [ $a, $b, $c ];
?>


九,超全局数组

超全局, 是指 超越页面, 可以在两个文件之间传递的变量.

$_GET       URL地址      表单, 超连接
$_POST    表单
$_REQUEST      包含 $_GET 和 $__POST  
$_COOKIE
$_SESSION
$_FILES
$_SERVER

<?php
        $_SERVER['SERVER_NAME']      // 主机名
        $_SERVER['SERVER_ADDR']      // 本服务器IP地址
        $_SERVER['REMOTE_ADDR']      // 浏览当前脚本的用户IP地址
        $_SERVER['HTTP_USER_AGENT']  // 用户浏览器
        $_SERVER['DOCUMENT_ROOT']    // 根目录的路径
        $_SERVER['REQUEST_URI']      // 用来指定要访问的页面
        $_SERVER['PHP_SELF']         // 文件自己
?>

十,数组函数

range(  )        根据范围创建数组,包含指定的元素
is_array(  )    判断变量是否为一个数组
count(  )         返回数组中元素个数
array_values( )     返回数组中所有的值
array_keys( )    返回数组中所有的键名
in_array( )         检查数组中是否存在某个值
array_pad( )      用值将数组填补到指定长度
array_merge( )     合并一个或多个数组
array_reverse( )     返回一个单元顺序相反的数组
array_unique( )     移除数组中重复的值

array_push( )      将一个或多个单元压入数组的末尾(入栈)
array_pop( )       将数组最后一个单元弹出(出栈)
array_unshift( )     在数组开头插入一个或多个单元
array_shift( )     将数组开头的单元移出数组
array_map( )        为数组的每个元素应用回调函数
array_filter( )        使用回调函数过滤数组的元素
usort( )        使用用户自定义的比较函数对数组中的值进行排序
json_encode( )    对变量进行 JSON 编码
json_decode( )    对 JSON 格式的字符串进行解码
explode( 分割符, 字符串 )    把一个字符串, 按某些字符拆分,  返回一个数组
implode( 连接符, 数组 )   把数组中每个元素, 用连接符拼接成一个字符串








必火网络安全培训,北京实地培训,月月有开班,零基础入门,四个月打造渗透高手。
详情请加微信:nvhack/153-2000-4362,手机微信同号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|女黑客安全网 |网站地图 | 津ICP备17008032号-3

GMT+8, 2026-2-2 05:15 , Processed in 0.085789 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表