zoukankan      html  css  js  c++  java
  • PHP each() 函数

    转自http://www.w3school.com.cn/php/func_array_each.asp

    定义和用法

    each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。

    返回的数组中包括的四个元素:键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。

    如果内部指针越过了数组范围,本函数将返回 FALSE。

    语法

    each(array)
    参数描述
    array 必需。规定要使用的数组。

    例子 1

    <?php
    $people = array("Peter", "Joe", "Glenn", "Cleveland");
    print_r (each($people));
    ?>

    输出:

    Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 )

    例子 2

    each() 经常和 list() 结合使用来遍历数组。本例与上例类似,不过循环输出了整个数组:

    <?php
    $people = array("Peter", "Joe", "Glenn", "Cleveland");
    
    reset($people);
    
    while (list($key, $val) = each($people))
      {
      echo "$key => $val<br />";
      }
    ?>

    输出:

    0 => Peter
    1 => Joe
    2 => Glenn
    3 => Cleveland

    例子解释

    因为将一个数组赋值给另一个数组时会重置原来的数组指针,因此在上例中如果我们在循环内部将 $people 赋给了另一个变量的话将会导致无限循环。

    注意:

    如下代码:

    <?php
    $url=array('新浪' => 'www.sina.com',
    '雅虎' => 'www.yahoo.com',
    '网易' => 'www.163.com',
    '腾讯' => 'www.qq.com',
    '百度' => 'www.baidu.com',
    );
    while($leach=each($url)){
    echo $leach['key'];
    echo "-";
    echo $leach['value'].'<br>';
    }

    $test1=each($url);
    echo $test1['key'];
    echo $test1['value'].'<br>';
    foreach ($url as $link){
    echo $link.'<br>';
    }
    foreach ($url as $site=>$link){
    echo $site,$link;
    echo "<a href= http://$link>$site</a><br>";
    }
    $url1=array('13.5','25','62');
    $leach=each($url1);
    echo $leach['key'] .'<br>';
    echo $leach['value' ] .'<br>';
    print_r($leach);
    ?>

    你可以运行一下知道结果是这样的:

    为什么单独用each却没有输出??

    因为数组的指针已经在while循环后指向空,调用each就没有输出。所以单独调用each是要小心,一般不要和循环一起使用,否则就会出错。

    另外:此处的$leach['key'],和$leach['value']最好加引号   否则有些php服务器不支持key 和value关键字而报错!!

  • 相关阅读:
    jqGrid api 中文说明
    jsp + js + 前端弹出框
    js中关于带数字类型参数传参丢失首位数字0问题
    java中WGS84坐标(ios)转换BD-09坐标(百度坐标)
    Java中的“浅复制”与“深复制”
    Git错误:error:failed to push some refs to 'git@gitee.com:name/project.git'
    git操作教程
    线程调度及进程调度
    同步锁Lock
    多线程案例
  • 原文地址:https://www.cnblogs.com/yujianshiguang/p/3168478.html
Copyright © 2011-2022 走看看