您现在的位置是:首页 >技术交流 >php语法基础(中)网站首页技术交流
php语法基础(中)
数组
1,数组的类型
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典型模块")
);
4,遍历与输出数组
①使用foreach结构遍历数组
②通过数组list()和each()遍历数组
list()函数将数组中的值赋给一些变量。each()函数返回数组中当前指针位置的键名和对应的值,并向前移动数组指针。
③print_r()函数
语法:bool print_r(mixed expression)
<?php
$array=array(1=>"php",2=>"计算机");
print_r($array);
结果Array([1]=>php [2]=>计算机)
④var_dump()函数
可以输出数组(或对象),元素数量以及每个字符串的长度,还能以缩进方式输出数组或对象的结构
语法:void var_dump( mixed expression [,mixed expression [,…]])
5,数组函数及其应用
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则检查搜索的值与数组的值类型是否相同