帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

php数组操作学习笔记 - php数组

php数组操作学习笔记

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

什么是数组?

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

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

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

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

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

赋值创建数组

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

实例代码如下:

  $lang []= "php" ; 
  $lang []= "html" ; 
  $lang []= "css" ; 
  echo   "$lang[0] 
" ;  
  echo   "$lang[1] 
" ;  
  echo   "$lang[2] 
" ;  
?> 

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

0=>php

1=>html

2=>css

创建数组

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

array (item1,item2… ,itemn)

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

实例代码如下:

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

数组键名

1、键名分配

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

基本结构形式:

array ( key => item )

实例代码如下:

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

2、用字符串作键名

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

实例代码如下:

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

3、键名的修改

实例代码如下:

  $arr  =  array ( "a"  =>  "新浪" ,    
    "b" => "网易" ,     
    "c"  =>  "腾讯" ,  "雅虎"    
  ); 
   $arr [a] =  "PHP中文社区" ;   
   $arr [ 'e' ] =  "新浪" ;    
   $arr [] =  "百度" ;     
  echo   $arr [ 'a' ] . "
" ;    
  echo   $arr [ 'b' ] . "
" ;    
  echo   $arr [ 'c' ] . "
" ;    
  echo   $arr [ 'e' ] . "
" ;    
  echo   $arr [0] . "
" ;     
  echo   $arr [1] . "
" ;     
?> 

创建多维数组

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

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

实例代码如下:

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

输出数组

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

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

实例代码如下:

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

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

实例代码如下:

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

测试数组

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

基本结构形式:

is_array ( 变 量 )

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

实例代码如下:

  $a = "apple iphone" ; 
  if ( is_array ( $a )){ 
   var_dump( $a ); 
  } 
  else   echo   "不是数组" ; 
?> 

foreach遍历数组

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

结构形式实例代码如下:

foreach  ( array_expression  as   $value  ) statement 
 
/* array_expression是要遍历的数组  
 as作用是将数组的值赋给$value  
statement是后续语句  
 */   

实例1:

$color = array ( 'white'  =>  '白色'  , 
       'black'  =>  '黑色'  , 
       'red'  =>  '红色'  , 
       'green'  =>  '绿色' , 
       'yellow'  =>  '黄色' ); 
foreach (  $color   as   $c )  echo   $c  . "
" ;     

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

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

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

实例代码如下:

foreach (  $color   as   $c )  echo   $c  . "
" ;  
改为: 
 
  foreach (  $color   as   $key  =>  $c )  echo   $key . $c  . "
" ; 

查找数组元素值

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

array_search( $needle,$haystack )

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

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

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

实例代码如下:

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

计算数组元素个数

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

结构形式实例代码如下:

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

实例:

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

数组排序

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

按键值排序

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

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

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

实例代码如下:

  $languages = array ( 
   'c' => 'php' , 
   'd' => 'asp' , 
   'a' => 'jsp' , 
   'b' => 'java'  
 ); 
 krsort( $languages ); 
  foreach ( $languages   as   $key => $val ){ 
   echo   "$key = $val" . '
' ; 
 }; 
?>  

按元素值排序

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

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

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

例代码如下:

asort( $languages ); 
 print_r( $languages ); 
  echo   "
" ; 
 rsort( $languages ); 
 print_r( $languages );  

删除原有键名排序

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

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

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

实例代码如下:

sort( $languages ); 
  foreach ( $languages   as   $key => $val ){ 
   echo   "languages[$key] = $val" . '
' ; 
 }; 

数组运算符

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

  $a = array ( 
    'a' => 'php' , 
    'b' => 'html' , 
    'c' => 'css'  
 ); 
  $b = array ( 
    'a' => 'asp' , 
    'b' => 'jsp'  
 ); 
  $c = $a + $b ;  /* 合并数组 */  
 var_dump( $c ); 
  echo   "
" ; 
  $c = $b + $a ;  /* 调换顺序合并数组 */  
 var_dump( $c );  
?>  

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

  $a = array ( 'php' , 'asp' ); 
  $b = array (1=> 'asp' ,0=> 'php' ); 
 var_dump( $a == $b ); 
 var_dump( $a === $b ); 
?>  

数组运算符

例子 名称 结果

$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.

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php数组操作学习笔记 - php数组》
文章链接:https://www.admin99.cn/6764
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册