php记录数组.docx
《php记录数组.docx》由会员分享,可在线阅读,更多相关《php记录数组.docx(23页珍藏版)》请在冰豆网上搜索。
php记录数组
数组array是一组有序的变量,其中每个变量被叫做一个元素。
定义和用法
可以用array()语言结构来新建一个数组。
它接受一定数量用逗号分隔的key=>value参数对。
array([key=>]value,...)//key可以是数字或者字符串//value可以是任何值
用foreach循环显示数组元素:
php
$phpjc=array(
'word',
'excel',
'outlook',
'access'
);
foreach($phpjcas$software)
{
echo$software;
echo"
";
echo"
";
}
foreach($phpjcas$key=>$value)
{
echo$key.":
".$value;
echo"
";
echo"
";
}
?
>
用print_r()函数输出数组:
php
$phpjc=array(
'word',
'excel',
'outlook',
'access'
);
print_r($phpjc);
?
>
输出:
php
Array
(
[0]=>word
[1]=>excel
[2]=>outlook
[3]=>access
)
?
>
count()函数计算数组元素的个数
分割数组array_chunk()
定义和用法
array_chunk()函数把一个数组分割为新的数组块。
其中每个数组的单元数目由size参数决定。
最后一个数组的单元数目可能会少几个。
可选参数preserve_key是一个布尔值,它指定新数组的元素是否有和原数组相同的键(用于关联数组),还是从0开始的新数字键(用于索引数组)。
默认是分配新的键。
语法
array_chunk(array,size,preserve_key)
参数
描述
array
必需。
规定要使用的数组。
size
必需。
规定每个新数组包含多少个元素。
preserve_key
可选。
可能的值:
∙true-保留原始数组中的键名。
∙false-默认。
每个结果数组使用从零开始的新数组索引。
例子:
php
$input_array=array('a','b','c','d','e');
print_r(array_chunk($input_array,2));
print_r(array_chunk($input_array,2,TRUE));
?
>
合并数组array_merge()
定义和用法
array_merge()函数把两个或多个数组合并为一个数组。
如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。
如果数组是数字索引的,则键名会以连续方式重新索引。
注释:
如果仅仅向array_merge()函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引。
(参见例子2)
语法
array_merge(array1,array2,array3...)
参数
描述
array1
必需。
输入的第一个数组。
array2
必需。
输入的第二个数组。
array3
可选。
可指定的多个输入数组。
例子1
php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?
>
输出:
Array([a]=>Horse[b]=>Cat[c]=>Cow)
例子2
仅使用一个数组参数:
php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?
>
输出:
Array([0]=>Horse[1]=>Dog)
数组位置函数prev()
定义和用法
prev()函数把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值。
如果内部指针已经超过数组的第一个元素之前,函数返回false。
语法
prev(array)
参数
描述
array
必需。
规定要使用的数组。
php
$planet=array(
'123',
'456',
'789',
);
$pos=current($planet);//此时$pos=123指向第一个元素
echo'pos1='.$pos;
echo'
';
$pos=prev($planet);//此时$pos=空因为指针已指到第一个元素之前了,没元素了
echo'pos2='.$pos;
echo'
';
?
>
输出:
pos1=123
pos2=
数组位置函数next()
定义和用法
next()函数把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值。
如果内部指针已经超过数组的最后一个元素,函数返回false。
语法
next(array)
参数
描述
array
必需。
规定要使用的数组。
php
$arrtest=array(
'abc',
'def',
'mnk'
);
$arr=current($arrtest);//此时$arr=abc当前数组元素指向第一个元素
echo'arr='.$arr;//输出第一个元素的内容
echo'
'; //换行
echo'
';
$arr2=next($arrtest);//此时$arr=def用了 next语句后,指针指向下一个元素,所以返回第二个元素的值
echo'arr2='.$arr2;//输出arr2变量的值
echo'
';//换行
echo'
';
?
>
数组的排序
sort()排序函数
定义和用法
sort()函数按升序对给定数组的值排序。
注释:
本函数为数组中的单元赋予新的键名。
原有的键名将被删除。
如果成功则返回TRUE,否则返回FALSE。
语法
sort(array,sorttype)
参数
描述
array
必需。
输入的数组。
sorttype
可选。
规定如何排列数组的值。
可能的值:
∙SORT_REGULAR-默认。
以它们原来的类型进行处理(不改变类型)。
∙SORT_NUMERIC-把值作为数字来处理
∙SORT_STRING-把值作为字符串来处理
∙SORT_LOCALE_STRING-把值作为字符串来处理,基于本地设置*。
$arr_sort=array(
'php',
'java',
'c++',
'asp',
'jsp'
);
sort($arr_sort);//对数组排序
arr_sort[0]=asp
arr_sort[1]=c++
arr_sort[2]=java
arr_sort[3]=jsp
arr_sort[4]=php
rsort()排序函数
定义和用法
rsort()函数对数组的元素按照键值进行逆向排序。
用法和可参照sort()函数
语法
rsort(array,sorttype)
asort()排序函数
asort()函数对数组进行排序并保持索引关系。
主要用于对那些单元顺序很重要的结合数组进行排序。
ksort()排序函数
ksort()函数按照键名对数组排序,为数组值保留原来的键。
shuffle()随机排序函数
shuffle()函数把数组中的元素按随机顺序重新排列。
shuffle(array)
array_reverse()排序函数
定义和用法
array_reverse()函数将原数组中的元素顺序翻转,创建新的数组并返回。
如果第二个参数指定为true,则元素的键名保持不变,否则键名将丢失。
语法
array_reverse(array,preserve)
参数
描述
array
必需。
规定数组。
preserve
可选。
规定是否保留原始数组的键名。
可能的值:
true和false。
这个参数是PHP4.0.3中新加的。
reset()重置数组
定义和用法
reset()函数把数组的内部指针指向第一个元素,并返回这个元素的值。
若失败,则返回FALSE。
语法
reset(array)
参数
描述
array
必需。
输入的数组。
list()数组赋值
定义和用法
list()函数用数组中的元素为一组变量赋值。
注意,list()实际上是一种语言结构,不是函数。
语法
list(var1,var2...)
提示
注释:
该函数只用于数字索引的数组,且假定数字索引从0开始。
$planet=array(
'asp',
'php',
'java',
'c++',
'.net'
);
list($no1,$no2,$no3)=$planet;//将数组中的前3个元素分别赋给list结构中对应的3个变量
结果
no1=asp
no2=php
no3=java
range()创建数组
定义和用法
range()函数创建并返回一个包含指定范围的元素的数组。
语法
range(first,second,step)
参数
描述
first
必需。
规定数组元素的最小值。
second
必需。
规定数组元素的最大值。
step
可选。
规定元素之间的步进制。
默认是1。
注释:
该参数是PHP5中加入的。
说明
该函数创建一个数组,包含从first到second(包含first和second)之间的整数或字符。
如果second比first小,则返回反序的数组。
例子
php
echo'
';$arr1=range(5,10);
print_r($arr1);
$arr2=range('a','f');
print_r($arr2);
$arr3=range(2,10,2);
print_r($arr3);
?
>
输出:
Array
(
[0]=>5
[1]=>6
[2]=>7
[3]=>8
[4]=>9
[5]=>10
)
Array
(
[0]=>a
[1]=>b
[2]=>c
[3]=>d
[4]=>e
[5]=>f
)
Array
(
[0]=>2
[1]=>4
[2]=>6
[3]=>8
[4]=>10
)
array_push()压入数组元素
定义和用法
array_push()函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
该函数等于多次调用$array[]=$value。
语法
array_push(array,value1,value2...)
参数
描述
array
必需。
规定一个数组。
value1
必需。
规定要添加的值。
value2
可选。
规定要添加的值。
提示和注释
注释:
即使数组中有字符串键名,您添加的元素也始终是数字键。
(参见例子2)
注释:
如果用array_push()来给数组增加一个单元,还不如用$array[]=,因为这样没有调用函数的额外负担。
注释:
如果第一个参数不是数组,array_push()将发出一条警告。
这和$var[]的行为不同,后者会新建一个数组。
$arr=array(
'asp',
'php',
'jsp'
);
array_push($arr,'java','c++');
调用函数array_push()之后:
Array
(
[0]=>asp
[1]=>php
[2]=>jsp
[3]=>java
[4]=>c++
)
array_pop()弹出数组元素
定义和用法
array_pop()函数删除数组中的最后一个元素。
语法
array_pop(array)
参数
描述
array
必需。
规定输入的数组参数。
array_intersect()返回数组交集
定义和用法
array_intersect()函数返回两个或多个数组的交集数组。
结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。
注释:
仅有值用于比较。
语法
array_intersect(array1,array2,array3...)
参数
描述
array1
必需。
与其他数组进行比较的第一个数组。
array2
必需。
与第一个数组进行比较的数组。
array3
可选。
与第一个数组进行比较的数组。
可以有多个。
php
$array1=array(
'a'=>'green',
'red',
'blue'
);
$array2=array(
'b'=>'green',
'yellow',
'red'
);
$result=array_intersect($array1,$array2);
echo'
';print_r($result);
?
>
输出:
Array
(
[a]=>green
[0]=>red
)
array_intersect_assoc()返回数组交集
定义和用法
array_intersect_assoc()函数返回两个或多个数组的交集数组。
与array_intersect()函数不同的是,本函数除了比较键值,还比较键名。
返回的数组中元素的键名保持不变。
array_flip()函数返回反转数组
定义和用法
array_flip()函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
如果原数组中的值的数据类型不是字符串或整数,函数将报错。
语法
array_flip(array)
参数
描述
array
必需。
规定输入的数组。
$olympic=array(
'Barcelona'=>1992,
'Atlanta'=>1996,
'Sydney'=>2000,
'Athens'=>2004,
'Beijing'=>2008
);
$nol=array_flip($olympic);
原数组:
Array
(
[Barcelona]=>1992
[Atlanta]=>1996
[Sydney]=>2000
[Athens]=>2004
[Beijing]=>2008
)
数组元素和索引对调之后:
Array
(
[1992]=>Barcelona
[1996]=>Atlanta
[2000]=>Sydney
[2004]=>Athens
[2008]=>Beijing
)
array_fill()填充数组
定义和用法
array_fill()函数用给定的值填充数组,返回的数组有number个元素,值为value。
返回的数组使用数字索引,从start位置开始并递增。
如果number为0或小于0,就会出错。
语法
array_fill(start,number,value)
参数
描述
start
必需。
数值,规定键的起始索引。
number
必需。
数值,规定填充的数量,其值必须大于0。
value
必需。
规定要插入的值。
例子
php
$arr=array_fill(2,4,'orange');
echo'
';print_r($arr);
?
>
输出:
Array
(
[2]=>orange
[3]=>orange
[4]=>orange
[5]=>orange
)
array_count_values()统计数组元素
定义和用法
array_count_values()函数用于统计数组中所有值出现的次数。
本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
语法
array_count_values(array)
参数
描述
array
必需。
规定输入的数组。
$say=array(
'Say',
'you',
'say',
'me',
'Say',
'it',
'together'
);
$say_tmp=array_count_values($say);
统计结果如下:
Array
(
[Say]=>2
[you]=>1
[say]=>1
[me]=>1
[it]=>1
[together]=>1
)
array_keys()数组索引
定义和用法
array_key_exists()函数判断某个数组中是否存在指定的key,如果该key存在,则返回true,否则返回false。
array_keys()函数返回包含数组中所有键名的一个新数组。
如果提供了第二个参数,则只返回键值为该值的键名。
如果strict参数指定为true,则PHP会使用全等比较(===)来严格检查键值的数据类型。
语法
array_keys(array,value)
参数
描述
array
必需。
规定输入的数组。
value
可选。
指定值的索引(键)。
strict
可选。
与value参数一起使用。
可能的值:
∙true-根据类型返回带有指定值的键名。
∙false-默认值。
不依赖类型。
array_map()回调函数
定义和用法
array_map()函数返回用户自定义函数作用后的数组。
回调函数接受的参数数目应该和传递给array_map()函数的数组数目一致。
语法
array_map(function,array1,array2,array3...)
参数
描述
function
必需。
用户自定义函数的名称,或者是null。
array1
必需。
规定数组。
array2
可选。
规定数组。
array3
可选。
规定数组。
例子
php
functioncube($n)
{
$cb=$n*$n*$n;
return$cb;
}
$a=array(1,2,3,4,5);
$b=array_map("cube",$a);
echo'计算原数组各元素的立方,结果如下:
';
echo'
';
echo'
';print_r($b);
?
>
输出:
计算原数组各元素的立方,结果如下:
Array
(
[0]=>1
[1]=>8
[2]=>27
[3]=>64
[4]=>125
)
in_array()函数
定义和用法
in_array()函数在数组中搜索给定的值。
语法
in_array(value,array,type)
参数
描述
value
必需。
规定要在数组搜索的值。
array
必需。
规定要搜索的数组。
type
可选。
如果设置该参数为true,则检查搜索的数据与数组的值的类型是否相同。
说明
如果给定的值value存在于数组array中则返回true。
如果第三个参数设置为true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回true。
如果没有在数组中找到参数,函数返回false。
注释:
如果value参数是字符串,且type参数设置为true,则搜索区分大小写。
例子
php
$planet=array(
'jsp',
'php',
'asp'
);
$temp='php';
if(in_array('php',$planet))
{
echo'php存在于数组$planet中';
echo'
';
echo'
';
}
if(in_array($temp,$planet))
{
echo$temp.'存在于数组$planet中';
echo'
';
echo'
';
}
else
{
echo$temp.'不存在于数组$planet中';
echo'
';
echo'
';
}
?
>
输出:
php存在于数组$planet中
php存在于数组$planet中