热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php数组操作学习笔记

小编今天给大家来总结php中数组操作的一些入门学习笔记了,包括了:数据创建,赋值,遍历,查找,统计,多维数组等等在php中数组各种操作,有需要了

小编今天给大家来总结php中数组操作的一些入门学习笔记了,包括了:数据创建,赋值,遍历,查找,统计,多维数组等等在php中数组各种操作,有需要了解的朋友可参考.

什么是数组?

数组是一个数据的集合,相当于一个容器,可以将数据按一定的规则存到这个容器中.相当于旅馆,旅馆内有很多房间,而房间按照一定的规则编号.

数组的构成:基本结构形式如下:

$数组名 (键)= 值 数组名:是一个数组区别于另一个数组的方式,就像每个旅馆都有一个名字.

键(key):也成为指针、索引或者标识符.键代表某值在数组中存放的位置,相当于旅馆的门牌号,可以用不同方式命名.通过查询键可以找到相应的值.

值(value):值相当于房间内存放的东西.

赋值创建数组

在php中,创建数组有变量赋值和调用函数两种方法,这里先讲前者.使用变量赋值方法很简单,直接给一个数组变量赋值即可.

实例代码如下:

  1.  $lang[]="php"
  2.  $lang[]="html"
  3.  $lang[]="css"
  4.  echo "$lang[0] 
    "
    ;  
  5.  echo "$lang[1] 
    "
    ;  
  6.  echo "$lang[2] 
    "
    ;  
  7. ?> 

三个赋值语句产生的数组内容:

0=>php

1=>html

2=>css

创建数组

除了上面介绍的赋值创建数组,还有调用函数的方法创建数组.php提供了array函数来穿件一个数组,基本结构形式如下:

array (item1,item2... ,itemn)

/* item表示数组中的元素值.array()函数创建数组时自动给元素值分配标识符,从0依次增加 */ 

实例代码如下:

  1.  $student=array("Tom","Jacky","Rose"); 
  2.  echo $student[0] ."t"
  3.  echo $student[1] ."t"
  4.  echo $student[2]; 
  5. ?> 

数组键名

1、键名分配

在用array()函数创建数组时,键名会自动分配到各个值.另外,我们也可以按自己的需要直接给元素分配键名.

基本结构形式:

array ( key => item )

实例代码如下:

  1.  $a=array(1 => "you",2 =>"are ", 5 =>"how "); 
  2.  echo $a[5]; 
  3.  echo $a[2]; 
  4.  echo $a[1]; 
  5. ?> 

2、用字符串作键名

不但可以用整数作为键名,也可以使用字符串作为键名.使用字符串作为键名的数组成为字符串索引(string-indexed)数组.

实例代码如下:

  1.  $a=array("php"=>"动态网页","html"=>"静态网页","css"=>"网页排版"); 
  2.  echo $a["php"] ."
    "
  3.  echo $a["html"] ."
    "
  4.  echo $a["css"]; 
  5. ?>  

3、键名的修改

实例代码如下:

  1.  $arr = array("a" => "新浪",    
  2.    "b"=>"网易",     
  3.    "c" => "腾讯""雅虎"   
  4.   ); 
  5.   $arr[a] = "PHP中文社区";   
  6.   $arr['e'] = "新浪";    
  7.   $arr[] = "百度";     
  8.  echo $arr['a'] ."
    "
    ;    
  9.  echo $arr['b'] ."
    "
    ;    
  10.  echo $arr['c'] ."
    "
    ;    
  11.  echo $arr['e'] ."
    "
    ;    
  12.  echo $arr[0] ."
    "
    ;     
  13.  echo $arr[1] ."
    "
    ;     
  14. ?> 

创建多维数组

在php程序编写时,一维数组有时不能满足需求,这时就要用到多维数组.多维数组就是在一维数组的基础上再增加一个或多个细下标,用法与一维数组大致相同,只是多维数据操作更为复杂,不过功能更强大.

以二维数组为例,就像大房子里面套有小房子,表示方法为$a[0][0].

实例代码如下:

  1.  $a[0][0]=1; 
  2.  $a[0][1]=2; 
  3.  $a[0][2]=3; 
  4.  $a[1][0]=4; 
  5.  $a[1][1]=5; 
  6.  $a[1][2]=6; 
  7.  for($i=0;$i<=1;$i++){ 
  8.   for($j=0;$j<=2;$j++){ 
  9.    echo "$a[$i][$j]=" .$a[$i][$j] ."
    "
    /* "$"表示输出变量符号$ */ 
  10.   } 
  11.  } 
  12. ?> 

输出数组

输出数组是指将数组的的所有元素数据显示在浏览器上,php怎么输出数组?常用的php输出数组函数有var_dump()和print_r()函数.

1、var_dump函数递归展开数组元素,显示数组各元素的类型、键名和元素值.

实例代码如下:

  1.  $a=array(0,5,array("php","html","css")); /* 创建一个嵌套的数组 */ 
  2.  var_dump($a); 
  3. ?>  

2、print_r函数值显示数组元素的键名和元素值.

实例代码如下:

  1.  $b=array(1,2,3); 
  2.  print_r($b); 
  3. ?> 

测试数组

有时候我们不清楚某个变量是不是数组,可以用is_array()函数来测试判断.

基本结构形式:

is_array ( 变 量 )

检测变量是否数组,如果是则返回true,否则返回false.

实例代码如下:

  1.  $a="apple iphone"
  2.  if(is_array($a)){ 
  3.    var_dump($a); 
  4.   } 
  5.  else echo "不是数组"
  6. ?> 

foreach遍历数组

我们在运用数组时,常常要遍历数组并获得各个键或者元素值,php提供了一些专门遍历数组的函数.这里先介绍foreach遍历数组函数的用法.

结构形式实例代码如下:

  1. foreach ( array_expression as $value ) statement 
  2.  
  3. /* array_expression是要遍历的数组 
  4.  as作用是将数组的值赋给$value 
  5. statement是后续语句 
  6.  */  

实例1:

  1. $color=array(&#39;white&#39; => &#39;白色&#39; , 
  2.       &#39;black&#39; => &#39;黑色&#39; , 
  3.       &#39;red&#39; => &#39;红色&#39; , 
  4.       &#39;green&#39; => &#39;绿色&#39;
  5.       &#39;yellow&#39; => &#39;黄色&#39;); 
  6. foreach$color as $cecho $c ."
    "
    ;     

通过foreach不仅可以获得元素的值也可以获得键名,结构形式:

foreach ( array_expression as $key => $value ) statement

将以上实例中第7行的代码:

实例代码如下:

  1. foreach$color as $cecho $c ."
    "
    ;  
  2. 改为: 
  3.  
  4.  foreach$color as $key => $cecho $key.$c ."
    "

查找数组元素值

php获取数组键名可以用array_search()来实现,结构形式如下:

array_search( $needle,$haystack )

/* 参数$needle表示要查找的值 */

/* $haystack表示查找对象 */ 

array_search()函数返回的是键名,而不是布尔值,找不到时返回false.找到的元素如果正好是第一个元素,则返回0.而php会自动转化成false,所以需要使用”===”判断返回值.(“===”判断是否全等,详:php关系运算符)

实例代码如下:

  1.  $s=array("a","b","c","d","e","f"); 
  2.  $i=array_search("a",$s); /* 查找数组是否有字符"a" */ 
  3.  if($i===false)  /* 判断查找结果 */ 
  4.   echo "在数组s中找不到字符&#39;a&#39;"
  5.  else echo "输出数组$s的键名:" .$i/* 输出键名 */  
  6. ?> 

计算数组元素个数

数组也像变量一样可以进行运算,例如需要php统计数组元素个数时,我们可以利用count()函数来计算数组中元素的个数.

结构形式实例代码如下:

  1. count ( $var,$mode ) 
  2. /* $var参数$var通常是一个数组,函数返回var中的单元数目 */ 
  3. /* mode是可选参数 */  

实例:

  1.  $a=array("peple","man","women"); 
  2.  $b=count($a); /* 统计数组元素个数 */ 
  3.  echo $b
  4. ?> 

数组排序

php提供了一系列的数组排序函数,我们可以根据需要对数组进行排序.数组的排序主要有三种方式:

按键值排序

即按标识符ASCⅡ码值的大小排列顺序.

ksort(): 按照数组标识符顺序排列

krsort(): 按照数组标识符逆序排 

实例代码如下:

  1.  $languages=array
  2.   &#39;c&#39;=>&#39;php&#39;
  3.   &#39;d&#39;=>&#39;asp&#39;
  4.   &#39;a&#39;=>&#39;jsp&#39;
  5.   &#39;b&#39;=>&#39;java&#39; 
  6.  ); 
  7.  krsort($languages); 
  8.  foreach($languages as $key=>$val){ 
  9.   echo "$key = $val".&#39;
    &#39;
  10.  }; 
  11. ?>  

按元素值排序

asort(): 按照由小到大的顺序对数组排序;

rsort(): 按照由大到小的顺序对数组逆序排序. 

将实例1的8-11行代码改为:

例代码如下:

  1. asort($languages); 
  2.  print_r($languages); 
  3.  echo "
    "
  4.  rsort($languages); 
  5.  print_r($languages);  

删除原有键名排序

sort(): 按照由小到大的顺序对数组排序;

rsort(): 按照由大到小的顺序对数组逆序排序. 

将实例2的8-11行代码改为:

实例代码如下:

  1. sort($languages); 
  2.  foreach($languages as $key=>$val){ 
  3.   echo "languages[$key] = $val".&#39;
    &#39;
  4.  }; 

数组运算符

合并数组计算实例代码如下:

  1.  $a=array
  2.    &#39;a&#39;=>&#39;php&#39;
  3.    &#39;b&#39;=>&#39;html&#39;
  4.    &#39;c&#39;=>&#39;css&#39; 
  5.  ); 
  6.  $b=array
  7.    &#39;a&#39;=>&#39;asp&#39;
  8.    &#39;b&#39;=>&#39;jsp&#39; 
  9.  ); 
  10.  $c=$a+$b/* 合并数组 */ 
  11.  var_dump($c); 
  12.  echo "
    "
  13.  $c=$b+$a/* 调换顺序合并数组 */ 
  14.  var_dump($c);  
  15. ?>  

数组的比较实例,实例代码如下:

  1.  $a=array(&#39;php&#39;,&#39;asp&#39;); 
  2.  $b=array(1=>&#39;asp&#39;,0=>&#39;php&#39;); 
  3.  var_dump($a==$b); 
  4.  var_dump($a===$b); 
  5. ?>  

数组运算符

例子 名称 结果

$a + $b 联合 $a 和 $b 的联合.

$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE.

$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE.

$a != $b 不等 如果 $a 不等于 $b 则为 TRUE.

$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE.

$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE.


推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • CSS标签、类名和ID选择器的使用区别
    本文讲解了CSS中标签选择器、类名选择器和ID选择器的使用区别,主要包括加空格和不加空格的区别。通过示例代码,说明了加空格表示选择当前节点的后代节点,而不加空格表示一个元素的多个类名不能加空格的规则。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
袁沮战_246
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有