PHP 数组

13 篇文章 0 订阅

数组分类

索引数组

  • 索引值为整数的数组,使用整数作为索引

关联数组

  • 索引值为字符串的数组,使用字符串作为索引

创建数组

  • 不需要指定数组的大小
  • 不需要再使用数组之前声明
  • 同一个数组中可以存储任何类型的数据
<?php
    // -------创建数组方法一--------------------
    $student1[0] = 10;
    $student1[1] = '苦涩';
    $student1[2] = true;
    $student1[3] = 71;

    //需要使用print_r()函数来输出数组的具体内容
    // print_r($student1);
    // echo $student1[3];

    // -------创建数组方法二--------------------
    // 如果省略索引值不写,那么默认索引值就是整数,从0开始
    $student2[] = 10;
    $student2[] = '苦涩';
    $student2[] = true;
    $student2[] = 72;
    // print_r($student2);

    // -------创建数组方法三--------------------
    $student3 = array(10, "苦涩", true, 73);
    // print_r($student3);

    // -------创建数组方法四--------------------
    $student4 = array(
        0 => 10,
        1 => "苦涩",
        3 => true,
        4 => 74
    );
    // print_r($student4);

    // -------创建数组方法五--------------------
    $student5["num"] = 10;
    $student5["name"] = '苦涩';
    $student5["sex"] = true;
    $student5["grade"] = 75;
    // print_r($student5);
    // 使用数组里面具体数据的方法
    // echo $student5['name'];
    // echo $student5[1];//关联数组不能使用下标

    // -------创建数组方法六--------------------
    $student6 = array(
        "num" => 10,
        "name" => "苦涩",
        "sex" => true,
        "grade" => 76
    );
    // print_r($student6);
?>

遍历数组

语法:foreach(数组名 as 索引 => 索引值)

<?php
    // -------------遍历数组-----------------------------
    // 索引数组
    $arr = array(
        'a', 'b', 'c','d','e'
    );
    // for循环遍历,使用count(数组)返回数组里数据的个数
    // echo count($arr);
    for($i = 0; $i < count($arr); $i++){
        echo $arr[$i]."<br>";
    }

    // ---------------------------------------------------
    //关联数组
    $arr2 = array(
        'name' => "苦涩",
        'num' => 10
    );
    // foreach(数组名 as 变量名)遍历数组
    foreach($arr2 as $value){
        echo $value.'<br>';
    }

    // foreach(数组名 as 索引 => 索引值)遍历数组
    foreach($arr2 as $key => $value){
        echo $key.'=>'.$value.'<br>';
    }

    // -----------遍历多维数组-------------------------------
    $arr3 = array(
        array(1, 2, 3),
        array(4, 5, 6)
    );
    foreach($arr3 as $val){
        echo $val."<br>";
        foreach($val as $val2){
            echo $val2."<br>";
        }
    }

?>

预定义超全局数组变量

  • 已经定义好了(存在)的变量(存放的数据的类型是数组)

  • 超全局:超级全局变量,作用域

  • 传递数据(提交数据)给服务器端主要有两种方式

get方式

  • http://localhost/?参数名=参数值
  • 在服务器端(请求的PHP文件这边)可以通过$_GET来获取
  • $_GET索引为参数名,索引值对应参数值

post方式

  • 比如表单post发送过来的
  • 可以通过$_POST来获取数据
<?php
    var_dump($_GET);
    echo "<hr>";
    var_dump($_POST);
    echo $_POST['userName'];
?>
<form method="post">
    姓名:<input type='text' name="userName"/><br>
    性别:<input type='text' name="sex"/><br>
    <input type='submit' value="提交"/>
</form>

处理数组的相关函数

  • array_count_values():统计数组中所有的值出现的次数
  • array_key_exists():检查给定的键名或索引是否存在与数组中
  • array_search():在数组中搜索给定的值,如果成功则返回相应的键名,否则返回false
  • count():统计数组中的元素个数
  • in_array():在数组中搜索给定的值,找到返回true,否则返回false
  • list():把数组中的值赋给一些变量,只能用于数字索引的数组,从右往左赋值
  • asort():对数组进行排序并保持索引关系,成功时返回true,否则返回false
  • arra_filter():用回调函数过滤数组中的值,该函数返回true则保留元素,否则过滤掉
<?php
    $arr = array(1, 'hello', 1, 'world', 1, 'hello');
    print_r(array_count_values($arr));

    $arr2 = array('first' => 111, 'second' =>222);
    var_dump(array_key_exists('first', $arr2));

    var_dump(array_search(111, $arr2));

    echo count($arr);

    var_dump(in_array(111, $arr2));

    list($diYi, $diEr, $diSan, $diSi, $diWu, $diLiu) = $arr;
    echo $diSi.'<br>';

    $arr3 = array(
        '苦涩1' => '80',
        '苦涩2' => '73',
        '苦涩3' => '90'
    );
    asort($arr3);
    print_r($arr3.'<br>');

    function odd($var){
        return($var % 2 ==1);
    }
    function even($var){
        return($var % 2 == 0);
    }
    $arr4 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    $arr5 = array(6, 7, 8, 9, 10);
    echo 'odd : ';
    print_r(array_filter($arr4, 'odd'));
    echo '<br>even: ';
    print_r(array_filter($arr5, 'even'));
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值