最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • php学习笔记 数组的声明与遍历

    在php中数组是一个非常重要的数据存储类型,本文章主要是介绍了数据创建与数组删除及遍历查询数据值输出,下面一起来看看。

    数组的声明

    1、直接赋值的方式声明数组

    $数组变量名[索引值] = 资料内容 //其中索引值(下标)可以是一个字符串或数字

    但有的时候,我们也可以直接给数组赋值,并不填写“索引值”,那第此时,数组的下标就会自动以数字0开始增加。

    $数组变量名[] = 资料内容 //其中索引值(下标)可以是一个字符串或数字

    2、使用array()语言结构新建数组

    在实际使用中我们可以用array()语言结构来新建一个数组,并初始化数组。

    $数组变量名=array( key1 => value1, key2 => value2, …… ,keyN => valueN );

    当然,像上面我们并不一定就这样,我们有的时候会像下面这样来做:(区别在于索引值为数字)

    $数组变量名=array( value1, value2, …… , valueN );

    3、多维数组的声明

    多维数组其实也就是在数组里面再次存放数组。如下:

    1. $content = array ( 
    2. array(1,'高某','A公司','北京市'), 
    3. array(2,'高某1','B公司','北京市'), 
    4. array(3,'高某','C公司','北京市'
    5. ); 

    数组的遍历

    1、使用for语句循环遍历数组

    在其它的编程语言中,数组的遍历通常都是使用for循环语句,通过数组的下标来访问数组中每个成员元素,但要求数组的下标必须是连续的数字索引。而在PHP中,不仅可以指定非连续的数字索引值,而且还存在以字符为下标的关联数组。所以在PHP中,其实是很少使用for语句来遍历数组。下面来晒一个例子给大家看一下,大家应该不会陌生,实例代码如下:

    1. <?php 
    2.    //使用array()语句将联系人列表中第一条记录声明成一维数组$contact 
    3.    $contact=array(1,"高某","A公司","北京市","(015)9582451","gao@php.com"); 
    4.    //以表格的形式输出一维数组中的每个元素 
    5.    echo '<table border="1" width="600" align="center">'//输出<table>标记定义表格 
    6.    echo '<caption><h1>联系人列表</h1></caption>'//输出表头 
    7.    echo '<tr bgcolor="#dddddd">'//输出表格的行开始,背景为灰色 
    8.      
    9.    //以html的th标记输出表格的字段名称 
    10.    echo '<th>编号</th><th>姓名</th><th>公司</th><th>地址</th><th>电话</th><th>EMAIL</th>'
    11.    echo '</tr><tr>'
    12.    for($i=0;$i<count($contact);$i++){ //使用for循环来输出一维数组中的元素 
    13.    echo '<td>'.$contact[$i].'</td>'
    14.    } 
    15.    echo '</tr></table>'//输出表格的关闭标记 
    16.    ?> 

    遍历多维数组时,要使用循环嵌套逐层进遍历。在此就不用代码列出来了。

    2、使用foreach语句遍历数组

    既然for循环语句在PHP中并不常用,那么就让我们来看一下foreach到底有什么可取之处吧!

    foreach语句有两种语法格式,第二种比较次要但却是第一种有用的扩展。

    第一种语法格式:

    1. foreach(array_expression as $value ){ 
    2.   
    3. 循环体 
    4.   

    第二种语法模式:

    1. foreach(array_expression as $key => $value){ 
    2.       
    3.     循环体 
    4.       
    5.     } 

    3、联合使用list()、each()、和while()、循环遍历数组

    each()函数

    each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0、1、key和value。其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值。如果内部指针越过了数组的末端,则each()返回FALSE。each()函数的使用如下所示,代码如下:

    1. <?php 
    2.     //声明一个数组$contact作为each()函数的参数 
    3.     $contact=array("ID"=>1,"姓名"=>"高某","http://www.phpfensi.com公司"=>"A公司","地址"=>"北京市"); 
    4.       
    5.     $id=each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组 
    6.     print_r($id); //返回数组$id:Array([1]=>1[value]=>1[0]=>ID[key]=>ID) 
    7.     $name=each($contact); //返回数组Rcontact中第二个元素的键/值对,是带有4个元素的数组 
    8.     print_r($name); //返回数组$name:Array([1]=>高某 [value]=>高某 [0]=>姓名 [key]=>姓名) 
    9.     $company=each($contact); 
    10.     print_r($company); 
    11.     $address=each($contact); 
    12.     print_r($address); 
    13.     $no=each($contact); //已经到数组$contact的末端,返回false 
    14.     var_dump($no); //输出$no的值:bool(false) 
    15.       
    16.     ?> 

    list()函数

    这不是真正的函数,而是PHP的语言结构。list()用一步操作给一组变量进赋值,即把数组中的值赋给一些变量。list()仅能用于数字索引的数组并假定数字索引从0开始。语法格式如下所示:

    list(mixed varname,mixed …)=array_expression //list()语句的语法格式

    list()语句和其它函数在使用上有很大的区别,并不是直接接收一个数组作为参数。而是通过“=”去处符以赋值的方式,将数组中每个元素的值,对应的赋给list()函数中的每个参数。list()函数又将它中的每个参数转换为直接可以在脚本中使用的变量。使用方法如下,实例代码如下:

    1. <?php 
    2.     $info=array('coffee','brown','caffeine'); //声明一个索引数组$info 
    3.       
    4.     list($drink,$color,$power)=$info//将数组中的所有元素转为变量 
    5.     echo "$drink is $color and $power makes it special.n";//输出的三个变量值是数组中三个元素的值 
    6.       
    7.     list($drink, ,$power)=$info//将数组中的部分元素变为变量 
    8.     echo "$drink has $power.n"//输出的两个变更值是数组中的前两个元素的值 
    9.       
    10.     list(,,$power)=$info//跳过前两个变量只将数组中第三个元素的值转为变量 
    11.     echo "I need $power!n"//输出的一个变量值是数组中桃花汛三个元素的值勤 
    12.     ?> 

    通过上例了解list()函数的用法之后,将each()函数和list()函数结合起来使用。代码如下:

    1. <?php 
    2.     $contact=array("ID"=>1,"姓名"=>"http://www.111Cn.Net","公司"=>"A公司","地址"=>"北京市"); 
    3.     list($key,$value)=each($contact); //将each()函数和list()函数联合使用 
    4.     echo "$key=>$value"//输出变量$key和$value,中间使用"=>"分隔 
    5. ?> 

    while()循环遍历数组

    while()循环的语法格式如下:

    1. while( list($key,$value) = each(array_expressin) ){ 
    2. 循环体; 

    使用这种组合改写前面使用foreach遍历过的一维数组,代码如下所示:

    1. <?php 
    2.     //声明一个一维的关联数组$contact 
    3.     $contact=array("ID"=>1, 
    4.     "姓名"=>"高某"
    5.     "公司"=>"A公司"
    6.     "地址"=>"北京市"
    7.     "电话"=>"(010)987665432"
    8.     "EMAIL"=>"gao@php.com" 
    9.     ); 
    10.     //以HTML列表的方式输出数组中每个元素的信息 
    11.     echo '<dl>一个联系人信息:'
    12.     while(list($key,$value) = each($contact) ){ //将foreach语句改写成while,list()和each()的组合 
    13.     echo "<dd>$key:$value</dd>"//输出每个元素的键/值勤 
    14.     } 
    15.     echo '</dl>'
    16. ?> 

    4、数组内部指针控制函数遍历数组

    对于数组指针的控制PHP提供了以下几个内部函数可以利用。

    》》current():是取得目前指针位置的内容资料

    》》key():用来读取目前指针所指向资料的索引值

    》》next():将数组中的内部指针移动到下一个单无

    》》prev():将数组的内部指针倒回一位

    》》end():将数组的内部指针向最后一个元素

    》》reset():将目前指针无条件移至第一个索引位置

    这些函数的参数都只有一个,就是要操作的数组本身。在下面的示例中,将使用这些数组指针函数控制数组中元素的读取顺序,代码如下所示:

    1. <?php 
    2.     //声明一个一维的关联数组$contact,使用"=>"去处符指定了每个元素的字符串下标 
    3.     $contact = array("ID"=>1, 
    4.     "姓名"=>"高某"
    5.     "公司"=>"A公司"
    6.     "地址"=>"北京市"
    7.     "电话"=>"(010)98765432"
    8.     "EMAIL"=>"gao@php.com" 
    9.     ); 
    10.     //数组刚声明时,数组指针在数组中第一个元素位置 
    11.     //使用key()和current()函数传入数组$contact,返回数组中当前元素的键和值 
    12.     echo '第一个元素:'.key($contact).'=>'.current($contact).'<br>'//输出:第一个元素:ID=>1 
    13.     echo '第一个元素:'.key($contact).'=>'.current($contact).'<br>'//数组指针没有移动,输出同上 
    14.       
    15.     next($contact); //将数组$contact中的指针向一个元素移动一次,指向第二个元素的位置 
    16.     next($contact); //将数组$contact中的指针向一个元素移动一次,指向第三个元素的位置 
    17.     echo '第三个元素:'.key($contact).'=>'.current($contact).'<br>'//输出第三个元素的键和值 
    18.       
    19.     end($contact); //再将数组$contact中指针移动到最后,指向最后一个元素 
    20.     echo '最后一个元素:'.key($contact).'=>'.current($contact).'<br>'//输出最后一个元素的键和值 
    21.       
    22.     prev($contact); //将数组$contact中的指针倒回一位,指向最后第二个元素 
    23.     echo '最后第二个元素:'.key($contact).'=>'.current($contact).'<br>'//输出最后第二个元素的键和值 
    24.       
    25.     reset($contact); //再将数组$contact中的指针重置到第一个元素的位置,指向第一个元素 
    26.     echo '又回到了第一个元素'.key($contact).'=>'.current($contact).'<br>'//输出第一个元素的键和值 
    27.     ?> 

    数据排序

    •sort() 函数用于对数组单元从低到高进行排序。

    •rsort() 函数用于对数组单元从高到低进行排序。

    •asort() 函数用于对数组单元从低到高进行排序并保持索引关系。

    •arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。

    •ksort() 函数用于对数组单元按照键名从低到高进行排序。

    •krsort() 函数用于对数组单元按照键名从高到低进行排序。

    例子代码如下:

    1. <?php 
    2. $arr = array("b""a""c"); 
    3. sort($arr); 
    4. print_r($arr); 
    5. ?> 
    6. //运行该例子输出: 
    7. //Array ( [0] => a [1] => b [2] => c ) 

    在本例中, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。

    rsort()

    PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

    asort()

    PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。

    语法:bool asort( array &array [, int sort_flags] )

    可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。

    实例代码如下:

    1. <?php 
    2. $arr = array("b""a""c"); 
    3. asort($arr); 
    4. print_r($arr); 
    5. ?> 
    6. //运行该例子输出: 
    7. //Array ( [1] => a [0] => b [2] => c ) 
    注:本文内容参考于《细说PHP》中的数组部分,仅作学习之余的个人笔记。
    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » php学习笔记 数组的声明与遍历

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级