php中的数组

来源:互联网 发布:pokemon狙击软件 编辑:程序博客网 时间:2024/05/22 13:55

                                                    php中的数组

   在php中数组是一个很强大的符合数据类型,它甚至可以完成其他语言中的数据结构的功能。
   在php中数组分为:
        1.索引数组:数组的索引值全为整数。 
2.关联数组:数组的索引值不全为整数,可能是字符串。
   在php中数组是不需要提前声明,设定数组长度,设定数组类型的。PHP中数组长度是自增,数组里可以放入不同类型的数据。
   
   1.数组的声明
     (1). $t[] $t[][] 声明
  $t[]=1;     定义数组$t的第一个元素的值为1即 [0]=>1
  $t['2']=2;  定义数组$t的键名为'2' 键值为2 的元素 即 ['2']=>2
  $t[][]=3    定义一个二维数组$t的第一行第一列元素值为3 即[0][0]=>3
(2). array()声明
  $t=array(1,2.3) 定义数组元素无 [0]=>1 [1]=>2 [2]=>3
  $t=array(
   0=>array('1'=>1),
'2'=>array('2'=>2)
  )          定义一个二维数组, 
  [
   0=>['1'=>1],
'2'=>['2'=>2]
  ]
    
   2.数组的遍历
(1). for foreach
 
(2). each([array]) each()函数输入一个数组,返回该数组当前元素的键值对,并且向后移动数组指针到下一个元素的位置。
     其返回值包括4个元素的关联和索引混合的数组 [0]=>key [1]=>value ['key']=>key ['value']=>value
 当指针越过数组末端,返回false
 list() list()函数不是真正的函数,是php中的语言结构,它仅能用于数字索引的数组并且假定索引是从0开始的
     例如:
 $t=array('zhangsan','lisi')
 list($user1,$user2)=$t
 echo $user1; //输出zhangsan,所以list其实就是一个临时的取值器
 
 一般是将each()与list() while()一起搭配来遍历数组的
  while( list($key,$value)=each($arr) )
  {
    echo "<br />".$hey.":".$value;
  }
 
(3). 使用数组内部指针
       current([array]) 取得当前指针所在位置的元素的值。
key([array])     取得当前指针所在位置的元素的索引。
next([array])    将当前指针的位置移到下一个位置,不可循环,移到数组末端,再使用next()无效。
       prev([array])    将当前指针向前到一位,不可循环。
end([array])     将数组的指针指向数组最后一个元素。
reset([array])   将数组的指针指向数组的第一个元素。

3.数组的相关处理函数
 array_values()  返回一个包含数组中所有的值的索引数组。
 array_key([array],[mixed],[,bool])     返回一个包含数组中所有的键的索引数组,还可以以通过第二个字符串型参数获取指定值的键数组,通过第三个参数设置是否要类型也要相同
 in_array([mixed],[array],[,bool])  在一个数组中查询是否存在指定值的元素,[mixed]搜索的值,[array]搜索的数组 [bool]是否严格,即是否数据类型也要相同才算。存在返回true,不存在返回false
 array_search() 同上
 array_key_exists([mixed],[array])  查询数组中是否存在键,此处不用虑键的类型如 是 1 还是'1'是因为在php数组中键是唯一的也就是说 对于数组的键而言 1和'1'是等价的。
 array_flip([array])  将输入数组中的键与值翻转变为一个新的数组。并不是改变原数组。
 array_reverse([array]) 将数组中元素翻转。创建新的数组返回。
 
 count([array],[,int]) 计算数组元素的个数 第二个可选参数[,int] 的值可以为 0表示不检测多维,1表示监测多维。
 array_count_values()  统计数组中所有值出现的次数,返回一个 原数组的值=>出现的次数 这样的键值对数组。
 array_unique()        删除数组中重复的的值,返回没有重复值的新数组。
 
 
 array_filter([array],[,callback callback]) 通过回调函数过滤数组中的元素。 
 array_walk([array],[callback function],[mixed]) 将数组中的元素交给回调函数处理。
          array_map() 可以处理多个数组。
 
 拆分,合并,分解和接合
 array_slice([array],[int offset],[,int lenght],[,bool preserve_keys]) 从数组中指定位置取出指定长度,lenght表示取出的个数,offset为负数时表示从数组末端开始取,preserve_keys表示是否保留原键名,默认false。
          array_splice([&array],[int offset],[,int length],[,array replacement]) 删除选择的元素,并且可以用指定的元素替代。
 array_combine([array key],[array value]) 通过合并两个数组来创建一个新的数组,一个是键的数组,一个是值的数组,所以两个数组的长度必须一致
          array_merge([array].....)  将多个数组直接合并成一个新的数组。
 array_intersect([array][array]...) 返回两个或两个数组中重合的部分
 array_diff([array][array]...)     返回两个或两个数组中不重合的部分
 
 数据结构:由于php是弱类型语言且数组可自动收缩,相当于数据结构中的容器。所有不必像其他语言那样再去定义容器,直接使用一些定义的函数就可以完成数据处理。。
  堆栈:先进后出
   array_push([&array],[mixed].....) 在指定数组尾部按顺序添加一个或多个元素。返回新数组的长度。
array_pop([&array]) 删除数组中的最后一个元素,并将数组的长度减1,返回弹出的元素或者空数组时返回null
  队列:先进先出
   array_push()             负责在队尾添加元素
array_shift([&array])    删除队首的元素,返回该元素,为空返回null
 
 特殊函数
 array_rand([array],[,int num])  从指定的数组中随机选出指定个键。
 shuffle([array]) 将数组中的元素随机打乱。
 array_sum([array]) 将数组中的所有值求和
 range([mixed first],[mixed second],[,number step]) 创建并返回指定范围内的的元素的数组。

    
 
 

0 0