数组是一个可以存储一组或一系列数值的变量。php支持两种数组:索引数组和关联数组,前者使用数字作为键,后者使用字符串作为键。php数字索引一般表示数组元素在数组中的位置,它有数字组成,下标从0开始,数字索引数组默认的索引值从0开始,然后自动增加。
数组操作符:
---------------------------------------------------------------------------------------
操作符 名称 使用方法 结果
---------------------------------------------------------------------------------------
+ 联合 $a+$b $a和$b的联合。虽然数组$b将被附加到$a中,但是关键字冲突的元素将不会被添加
== 相等 $a==$b 如果$a和$b具有相同的键/值对,则为true
=== 全等 $a===$b 如果$a和$b具有相同的键/值对并且顺序和类型都相同,则为true
!= 不等 $a!=$b 如果$a和$b不包含相同的元素,则为true
<> 不等 $a<>$b 同!=
!== 不全等 $a!==$b 如果$a和$b不包含相同顺序的相同元素,则为true
---------------------------------------------------------------------------------------
range()方法:自动生成升序的数组range(1,10); range('a','b'); range(1,10,2);第三个参数生成1-10之间的奇数数组。
array_unshift()方法:从数组头部压人数据。array_unshift($arr,'val1','val2'...);
array_push()方法:将array当成一个栈,并将传入的变量压入array的末尾。array_push($arr,'val1','val2'...);
array_shift()方法:将array的第一个单元移出,将所有的其他单元向前移动一位。
array_pop()方法:将数组的最后一个元素移除。
array_unique(array): 函数移除数组中的重复的值,并返回结果数组。当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。返回的数组中键名不变。
数组操作符:
---------------------------------------------------------------------------------------
操作符 名称 使用方法 结果
---------------------------------------------------------------------------------------
+ 联合 $a+$b $a和$b的联合。虽然数组$b将被附加到$a中,但是关键字冲突的元素将不会被添加
== 相等 $a==$b 如果$a和$b具有相同的键/值对,则为true
=== 全等 $a===$b 如果$a和$b具有相同的键/值对并且顺序和类型都相同,则为true
!= 不等 $a!=$b 如果$a和$b不包含相同的元素,则为true
<> 不等 $a<>$b 同!=
!== 不全等 $a!==$b 如果$a和$b不包含相同顺序的相同元素,则为true
---------------------------------------------------------------------------------------
range()方法:自动生成升序的数组range(1,10); range('a','b'); range(1,10,2);第三个参数生成1-10之间的奇数数组。
array_unshift()方法:从数组头部压人数据。array_unshift($arr,'val1','val2'...);
array_push()方法:将array当成一个栈,并将传入的变量压入array的末尾。array_push($arr,'val1','val2'...);
array_shift()方法:将array的第一个单元移出,将所有的其他单元向前移动一位。
array_pop()方法:将数组的最后一个元素移除。
array_unique(array): 函数移除数组中的重复的值,并返回结果数组。当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。返回的数组中键名不变。
字符串与数组之间的转换
implode();将数组组合成字符串implode('--',$arr);
explode();将字符串切割成数组explode('--',$arr);
数组的排序
sort()按数组中的值升序排列,键会重新排列
rsort()按数组中的值降序排列,键会重新排列
asort()和arsort()的排序功能一样,区别在于asort()和arsort()会保持原有的键值对。
ksort()和krsort()的区别在于按照数组中的key排序。
shuffle()会将数组中随机排序并初始化所有的键以整数0开始,1为步增长。
数组判断
in_array():判断值是否在数组中in_array('val',$arr); return true/false
array_key_exists():判断键是否在数组中array_key_exists('val',$arr);return true/false
数组的合并与拆分
array_merge()函数将多个数组合并为一个数组。规律是直接将后边的数组接在前面的数组下。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值;如果数组包含数字键名,则后面的值将不会覆盖而是附加在后面。
array_chunk()函数将一个数组分割成多个数组。array_chunk($arr,int $size, bool $preserve_keys)$arr 指定要拆分的数组 $size:指定结果数组中的元素个数 $preserve_key:true 数组元素的键名保持不变 false 默认值,表示数组元素的键名会丢失。
array_combine($arr1,$arr2)函数返回一个新数组,新数组的键为$arr1的值,新数组的值为第二个数组的值。如果两个数组长度不想等,则会返回false。
返回数组交集的函数
array_instersect()对两个或者两个以上的数组进行操作,该函数返回这些数组中都存在的值,键名保持原先数组中的键不变。如果有键名不同的值,则返回第一个数组中的键。
将数组转换成标量变量
extract();
$arr = array("Jim"=>'brothder','Tom'=>'workmate');
extract($arr);
echo $Jim;
echo $Tom;
在数组中查找值
array_search('val',$arr);
array_keys(); 获取数组键 返回数字索引数组
array_values(); 获取数组键 返回数字索引数组
array_filter(array[, callback callback]) 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。如果没有提供 callback 函数,array_filter() 将删除 array 中所有等值为 FALSE 的条目.(这也就是过滤数组空白元素的方法)
function myfunction($v) {
if ($v==="Horse") return true;
return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
prnit_r( array_filter($a ,"myfunction")) ; 输出 Array ( [2] => Horse )