精华内容
下载资源
问答
  • 遍历数组

    2010-10-11 08:11:00
    在这里介绍的是遍历数组,一共有种方法 和在遍历数组中存在的问题(如:你要遍历的可能不是数组所以要进行判断  之后进行处理 或强制转换成数组进行统一处理) 问题: 你想要循环遍历一数组,...

    遍历数组
     在这里介绍的是遍历数组,一共有几种方法 和在遍历数组中存在的问题(如:你要遍历的可能不是数组所以要进行判断
     之后进行处理 或强制转换成数组进行统一处理)

    问题:
    你想要循环遍历一个数组,并对其中的全部或部分元素进行操作.

    方案:
    1: 使用foreach语句:
      foreach( $array as $value )
      {
       //操作
      }  
     或者同时取得数组的键和值
      foreach( $array as $key=>$value )
      {
       //操作
      }
      
    2:使用for语句
      for( $key = 0,$size = count( $array ); $key <$size; $key++ )
      {
       //操作
      }
      
      最后,还可以在list() 函数 与while语句的组合中使用each()函数:
      reset($array) //将内部指针复位于数组的第一个元素处
      while(list($key , $value)=each($array) )
      {
       //操作
      }
    讨论:
     在迭代数组元素时使用foreach语句更简洁一些
      foreach( $array as $value )
      {
       //操作
      }  
     或者同时取得数组的键和值
      foreach( $array as $key=>$value )
      {
       //操作
      }
    在使用foreach语句时,PHP迭代的是相应数组的一个副本,而非数组本身.相反地,在使用each()函数和for语句时,PHP迭代
    的是原始数组.如果你要在循环内部修改数组,就应该选择某种方式 .

    reset($items)
    while(list($item , $cost) = each($items) )
    {
     if( !in_stock($item) )
     {
      //unset — 释放给定的变量
      /*unset() 销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),
      而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。
      这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。 */
      
      unset($items[$item]);  
     }
    }
    each() 返回的变量不是数组中的原始值,而是原始值的副本,所以如果你修改这个变量,不会景响原始数组.这正是
    要修改$items[$item]而不是$item的原因所在.

    在使用each()函数时,PHP会跟踪循环的位置.当完成第一次循环后,再重新调用reset()函数将指针复位.如果指针
    越过了数组的末端each()返回false.

    for循环只能用于使用连续整数作为键的数组.除非你在同时修改数组的大小.否则如果每次循环都要重新计算$times的
    大小会影响效应,所以应该用一个$size变量来保存数组的大小值:
    for($item = 0 , $size = count($items ); $item < $size; $item++)
    {
     .......
    }
    如果你更喜欢用一个变量来计数,可以使用倒计法:
    for($item = count($items) - 1; $item >= 0; $item--)
    {
    ......
    }
    在不能确定要处理的数据是一个变量还是一个数组的情况下,需要避免对一个非数组变量使用foreach()语句.
    方法1:  使用  is_array() 函数判断 是不是数组
      if( is_array( $items ) )
      {
      ....
      }
      else
      {
       ...
      }
    方法二:强制转换为数组settype()函数将所有变量都强制转换为数组形式:
        settype($items,'array');
        这方法会把标量值转换成一个单元素数组,虽然增加了一些系统开销,但能使代码更清晰.

    展开全文
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    第1章 声明和初始化 ...6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething...
  • 面试题3:二维数组中的查找:对于在一个每一行从左到右依次递增,每一列从上到下依次递增的二维数组查找一个元素,可以选择从数组左上角开始查找array[i][j],如果目标元素大于array[i][j],i+=1,如果元素小于array...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确...
  • 一个指针变量既可以指向一个数组,也可以指向一个数组元素, 可把数组名或第一个元素的地址赋予它。如要使指针变量指向第i号元素可以把i元素的首地址赋予它或把数组名加i赋予它。  设有实数组a,指向a的指针变量...
  • javascript入门笔记

    2018-05-15 15:01:07
    特点:将 a 和 b 先转换为二进制,按位操作,对应位置上的两数字,相同时,该位整体结果为0,不同时,该位的整体结果为 1 使用场合:快速交换两数字 5 ^ 3 101 011 ========== 110 结果为 6 练习: ...
  • 事件循环大致分为以下几个步骤: <ol><li>所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。</li><li>主线程之外,还存在一个"任务队列"(task ...
  • // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    来好像有多个元素。这样合法和可移植吗? . . . . . . . . . . . . 8 2.7 是否有自动比较结构的方法? . . . . . . . . . . . . . . . . . . . . 8 2.8 如何向接受结构参数的函数传入常数值? . . . . . . . . . . ....
  • 至于shouldConvert和后续的几个判断则是为了防止value不是单纯的对象而是Regexp或者函数之类的,或者是vm实例再或者是可扩展的,shouldConvert则是某些特殊情况下为false,它的解释参见源码里尤...
  • c语言经典案例

    2014-10-30 08:06:57
    实例104 判断数是否存在数组中 135 实例105 求二维数组对角线之和 136 实例106 模拟比赛打分 137 实例107 矩阵的转置 139 实例108 设计魔方阵 141 实例109 字符升序排列 142 实例110 在指定位置插入字符 144 ...
  • 3.5.3 给40亿个重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断几个数是否在那40亿个数当中? 3.5.4 在一个文件有10G个整数,乱序排列,要求找出位数。内存限制为2G。 3.5.5 时分秒针...
  • RFID数据流近似去重

    2015-10-06 23:50:24
    为了表达S={x1, x2,…,xn}这样一个n个元素的集合,Bloom Filter使用k个相互独立的哈希函数(Hash Function),它们分别将集合的每个元素映射到{1,…,m}的范围。对任意一个元素x,第i个哈希函数映射的位置hi(x)就...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    判断文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java访问数据库的步骤,Statement和...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    <br>实验四 综合(课程设计) 内容及步骤: 1、假定一维数组a[n]的每个元素值均在[0,200]区间内,用C++编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素...

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
关键字:

判断数组中同时不存在几个元素