PHP中将数组分为一维数组、二维数组和多维数组,但是无论是一维还是多维,可以统一将数组分为两种:数字索引数组(indexed array)和关联数组(associative array)。
①数字索引数组
数字索引数组,下标(键名)由数字组成,默认从0开始
$arr_int = array ("PHP入门与实战","C#入门与实战","VB入门与实战");
②关联数组
关联数组的键名可以是数字和字符串混合的形式
语法:
$arr_string = array ("PHP"=>"PHP入门与实战","Java"=>"Java入门与实战","C#"=>"C#入门与实战");
2,通过数组标识符[]创建数组
$arr[key] = value;
$arr[] = value;
使用array()函数创建数组
array array ( [mixed …])
$arr_string=array(‘one’=>‘php’,'‘two’=>‘java’);
3,创建二维数组
使用array()函数创建二维数组
$str = array (
"PHP类图书"=>array ("PHP从入门到精通","PHP典型模块","PHP标准教程"),
"JAVA类图书"=>array ("a"=>"JAVA范例手册","b"=>"JAVA WEB范例宝典"),
"ASP类图书"=>array ("ASP从入门到精通",2=>"ASP范例宝典","ASP典型模块")
);
①使用foreach结构遍历数组
②通过数组list()和each()遍历数组
list()函数将数组中的值赋给一些变量。each()函数返回数组中当前指针位置的键名和对应的值,并向前移动数组指针。
③print_r()函数
语法:bool print_r(mixed expression)
$array=array(1=>"php",2=>"计算机");
print_r($array);
结果Array([1]=>php [2]=>计算机)
④var_dump()函数
可以输出数组(或对象),元素数量以及每个字符串的长度,还能以缩进方式输出数组或对象的结构
语法:void var_dump( mixed expression [,mixed expression [,…]])
1,创建数组函数
①range()函数
语法:array range( int low, int high [, int step])
low:必要参数,数组单元最小值
high:必要参数,数组单元最大值
step:可选参数,如果给出了此参数,它将被作为单元之间的进步值。此参数应该为正值,默认为1.
a y y a y = r a n g e ( 1 , 3 ) ; p r i n t r ( ayyay = range(1,3); print_r( ayyay=range(1,3);printr(array)
结果Array([0]=>1 [1]=>2 [2]=>3)
2,array_combine()函数
array array_combine(array keys, array values)
keys:必要参数,用作新数组键名的数组值。
values:必要参数,用作新数组值的数组值
3,array_fill()函数
array array_fill(int start_index,int num, mixed value)
start_index:必要参数,起始数组的键名。
num:必要参数,填充的数量,其值必须大于0.
value:必要参数,用来填充的值
$array = array_fill(3,5,php函数") //建立了一个键名为3,填充5个PHP函数“
结果:Array([3]=>php函数 [4]=>php函数……[7]=>php函数)
4,array_pad()函数
用指定的值将数组填补到指定的长度,如果长度为正,则数组被填补到右侧,如果为负,则从左侧开始填补。如果长度的绝对值等于数组长度则没有任何填补
array array_pad(array input,int pad_size,mixed pad_value)
input:必要参数输入的数组
pad_size:必要参数指定的长度,如正数,则填补到右侧,如为负数则填补到左侧
pad_value:可选参数,用来填补的值
$input = array(‘php’,‘jsp’,‘html’)
r e s u l t 1 = a r r a y p a d ( result1 = array_pad( result1=arraypad(input,5,8)
print_r($resullt1)
结果为:Array ([0]=>php [1]=>jsp [2]=>html [3]=>8 [4]=>8)
1,coutn()函数
int count(mixed array[, int mode])
参数array指定操作的数组对象
参数mode为可选参数,如果mode的值设置为COUNT_RECURSIVE或1,count()函数将递归地对数组计数,这对计算多为数组单元尤其有用。参数mode地默认值是0.
a r r a y = a r r a y ( 0 = > ′ p h p ′ , 1 = > j s " ) e c h o c o u n t ( array = array(0=>'php',1=>js") echo count( array=array(0=>′php′,1=>js")echocount(array) //统计数组中地元素个数并输出
运行结果:2
2,max()函数用于计算数组元素最大值
a = a r r a y ( 1 , 3 , 6 , 7 , 8 , 9 ) e c h o m a x ( a = array(1,3,6,7,8,9) echo max( a=array(1,3,6,7,8,9)echomax(a)
运行结果:9
3,array_sum()函数,返回数组相加结果
a = a r r a y ( 1 , 2 , 3 , 4 , 5 ) e c h o a r r a y s u m ( a = array(1,2,3,4,5) echo array_sum( a=array(1,2,3,4,5)echoarraysum(a)
结果为15
4,array_count_values()函数
用于统计并计算数组中所有元素地值出现地次数,结果返回一个新数组
a r r a y = a r r a y ( 1 , 2 , 1 , 2 , 3 ) p r i n t r ( a r r a y c o u n t v a l u e s ( array = array(1,2,1,2,3) print_r(array_count_values( array=array(1,2,1,2,3)printr(arraycountvalues(array));
结果:Array{[1]=>2 [2]=>2 [3]=>1}
1,current()函数
a r r a y = a r r a y ( " 1 " = > " p h p " ) e c h o k e y ( array=array("1"=>"php") echo key( array=array("1"=>"php")echokey(array); //输出当前元素地键名
echo current($array); //输出当前元素的值
结果:1 php
2,extract()函数
将数组里面的值变为变量
a r r = a r r a y ( " n a m e " = > 张三, " s e x " = > " 男 " ) / / 变完之后是 n a m e = 张三, s e x = 男 e x t r a c t ( arr =array("name"=>张三,"sex"=>"男") //变完之后是name=张三 ,sex=男 extract( arr=array("name"=>张三,"sex"=>"男")//变完之后是name=张三,sex=男extract(arr);
echo $name
结果:张三
3,compact()函数和extract()函数刚好相反
$a=1
$b=2
$result=comjpact(“a”,“b”)
4,array_keys()函数
用于获取数组中所有的键名(数字或字符串),返回值为数组
5,array_values()函数
用于获取数组中所有的值,并给其建立数字索引
6,in_array()函数
用于搜索数组中是否存在某个值,如果找到返回true,否则返回false
if(in_array(“被搜索的值”,数组名,True))//设定值为true则检查搜索的值与数组的值类型是否相同
基本语法格式
function function_name([arg_1],[arg_2]){
fun_body;
[return arg_n;]
}
参数说明
function:声明自定义函数时必须用到的关键字。
function_name:床架按函数的名称,是有效的php表示符,函数名称是唯一的,其命名遵守与变量名相同的规则,只是不能以$开头。
arg_1:外界传递给函数的值,可有可无,可以有多个参数,数量根据需要而定。各参数用“,”逗号分割。参数的类型不必指定,在调用函数时只要时php支持的类型都可以使用。
fun_body:自定义函数的主体,是功能实现部分。
return:将调用代码需要的值返回,并结束函数的运行
语法
function example($num){
rerturn "$num * $num = ".$num* $num;
}
echo example(10);//结果10*10=100
?>