zoukankan      html  css  js  c++  java
  • 3.24 php基础(21)_foreach循环遍历数组

    数组遍历:普通数组数据的访问都是通过数组元素的下标来实现访问,如果说数组中所有的数据都需要依次输出出来,就需要我们使用到一些简化的规则来实现自动获取下标以及输出数组元素。

    访问单个数据:
    二维数组:
    $arr = array
        (
            0 => array('name'=>'Tom'),
            1 => array('name'=>'Jim')
        );       
    访问一维数组:$arr[一维下标]
    $arr[0]  
    访问二维数组:$arr[一维下标][二维下标]
    $arr[0]['name']

    如果访问全部数据呢?这里就要用到foreach循环遍历
    foreach循环遍历语法
    基本语法:
    foreach($数组变量 as[$下标 =>]$值)
        {
             //通过$下标访问元素的下标,通过$值访问元素的值
        }
    说明:[]代表可有可无,as:比如、例如。如果是关联数组(字母下标),就需要下标,如果是数字下标可以直接访问值。

    一维数组遍历:

    <?php
    $arr = array(1,2,3,4,5,6,7,8,9,10);
    foreach($arr as $v) //$v随意命名
    {
    echo $v." ";
    }
    ?>
    <?php
    $arr = array(1,2,3,4,5,6,7,8,9,10);
    foreach($arr as $k => $v) //$v随意命名
    {
    echo 'key:'.$k.'value'.$v." ";
    }
    ?>
    二维数组遍历:
    在进行数据存储定义的时候,通常二维数组不会两个维度的key下标都为数字,一般是一维为数字(无意义),二维为字符串(数据库表字段),所以在进行遍历的时候,通常是只需要针对一维进行遍历,取得二维数组的元素,然后二维数组元素通过下标去访问

    <?php
    $arr = array
    (
    0 => array('name' => 'Tom','age' => 30),
    1 => array('name' => 'Jim','age' => 28),
    2 => array('name' => 'Lily','age' => 20)
    );
    foreach($arr as $value)
    {
    var_dump($value);
    }
    foreach($arr as $k => $v)
    {
    //1、可以继续遍历:增加foreach遍历$value
    foreach($arr[$k] as $index => $value)
    {
    echo $index.' is '.$value." ";
    }
    //2、可以使用下标访问
    // echo 'name is:'.$v['name'].' and age is:'.$v['age']." ";
    }
    ?>
    ---------- 编译php ----------
    array(2) {
    ["name"]=>
    string(3) "Tom"
    ["age"]=>
    int(30)
    }
    array(2) {
    ["name"]=>
    string(3) "Jim"
    ["age"]=>
    int(28)
    }
    array(2) {
    ["name"]=>
    string(4) "Lily"
    ["age"]=>
    int(20)
    }
    name is Tom
    age is 30
    name is Jim
    age is 28
    name is Lily
    age is 20
    foreach遍历原理 
    foreach($arr as $k ==> $v)
        {
            循环体;
        }
    foreach遍历原理:本质是数组的内部有一个指针,默认是指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针。
        1、foreach会重置指针:让指针指向第一个元素(通常是执行完其他数组后)
        2、进入foreach循环:通过指针取得当前第一个元素,然后将下标取出放到对应的下标变量$k中(如果存在的话),将值取出来放到对应的值变量$v中,指针下移。
        3、进入到循环内部(循环体);
        4、重复2和3,直到2的时候遇到指针取不到内容(指针指向数组最后)

  • 相关阅读:
    【BZOJ4198】[Noi2015]荷马史诗 贪心+堆
    【BZOJ4200】[Noi2015]小园丁与老司机 DP+最小流
    【BZOJ2839】集合计数 组合数+容斥
    【BZOJ2989】数列 kd-tree
    【BZOJ4240】有趣的家庭菜园 树状数组+贪心
    【BZOJ4238】电压 DFS树
    【BZOJ4237】稻草人 cdq分治+单调栈+二分
    Python Web学习笔记之WebSocket原理说明
    Python Web学习笔记之Cookie,Session,Token区别
    Python Web学习笔记之图解TCP/IP协议和浅析算法
  • 原文地址:https://www.cnblogs.com/dty602511/p/14913929.html
Copyright © 2011-2022 走看看