标签:
一.数组的概念:
数组可以理解为有序的(键-值)对组成的数据值的集合;
如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器;
根据索引值的不同数组分为:索引数组和关联数组;
$week
=
array
(
"a"
=>
"星期一"
,
"b"
=>
"星期二"
,
"c"
=>
"星期三"
);
//a:键 星期一:值
二.创建数组
1.使用
array
()函数
array
array
( [mixed ...] )
$arr
=
array
();
$fruits
=
array
(
"orange"
,
"apple"
,
"banana"
);
$languages
=
array
(
"en"
=>
"english"
,
"cn"
=>
"china"
);
与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小;
因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;
索引可以是整型数字或者是字符串;
索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;
关联数组:索引为字符串的数组;
2. 直接对数组变量赋值
$arr
[key] = value;
$fruits
[] =
"orange"
;
$fruits
[] =
"apple"
;
$languages
[
"en"
] =
"english"
;
$languages
[
"cn"
] =
"china"
;
如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。
如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。
3. 使用函数创建数组
range() 建立一个包含指定范围单元的数组
$num
= range(1, 100);
print_r(
$num
);
$letter
= range(
‘a‘
,
‘I‘
);
print_r(
$letter
);
三、删除 数组或数组元素
unset 释放给定的变量
$fruits
=
array
(
‘apple‘
,
‘banana‘
,
‘orange‘
);
print_r(
$fruits
);
unset(
$fruits
[1]);
print_r(
$fruits
);
unset(
$fruits
);
注意:删除数组元素不会重建索引;
四、常用的数组函数
1.print_r() 打印数组
$today
=
getdate
();
print_r(
$today
);
2.
count
() 取得数组大小
count
(
$week
);
3.in_array() 检查数组中是否包含某个值
in_array(
‘apple‘
,
$fruits
);
var_dump(in_array(apple,
$fruits
));
五、遍历数组
for
()
do
{}
while
()
while
(){}
foreach
(){}
使用数组指针遍历数组
key()
返回数组当前指针元素的索引;
current()
返回数组当前指针元素的值;
next()
将数组指针向前移动一位,并返回当前指针元素的值; 如果超出了数组元素的末尾,则返回FALSE
prev()
将数组指针往回移动一位, 并返回当前指针元素的值; 如果指针本来就位于数组的第一个位置则返回FALSE;
reset()
将指针指向第一个元素,并返回第一个元素的值
end
()
将数组指针指向最后一个元素, 并返回最后一个元素的值;
each()
返回数组当前指针元素的键和值,并将指针推进一个位置;如果内部指针越过了数组的末端,则 each() 返回 FALSE。
list()
把数组中的值赋给一些变量;
$fruits
=
array
(
‘apple‘
,
‘banana‘
,
‘orange‘
);
echo
current(
$fruits
);
each(
$fruits
);
//使用each()推进指针向前一步
echo
current(
$fruits
);
next
$fruits
);
//也可以使用next() 推进指针向前一步
echo
current(
$fruits
);
end
(
$fruits
);
//将数组指针指向最后一个元素
print_r(each(
$fruits
));
list(
$val1
,
$val2
,
$val3
) =
$fruits
;
echo
$val1
;
echo
$val2
;
echo
$val3
;
使用循环语句遍历数组
$fruits
=
array
(
‘apple‘
,
‘banana‘
,
‘orange‘
);
//do{}while()
do
{
echo
key(
$fruits
).
‘=> ‘
.current(
$fruits
);
}
while
(next(
$fruits
));
//while(){}
while
(
$arr
= each(
$fruits
)){
echo
$ arr[
‘key‘
].
‘‘
.
$arr
[
‘value‘
];
}
while
(list(
$key
,
$value
) = each(
$fruits
)){
echo
$key
.
‘‘
.
$value
;
}
//for(){}
for
(
$i
= 0;
$i
<
count
(
$fruits
);
$i
++){
echo
"key:"
.
$i
.
"|value:"
.
$fruits
[
$i
];
}
//foreach(){}
$product
=
array
(
‘pname‘
=>
‘nokia n73‘
,
‘price‘
=>
‘1500‘
,
‘pubtime‘
=>
‘2008‘
,
);
if
(
is_array
(
$product
) && !
empty
(
$product
)){
foreach
(
$product
as
$key
=>
$value
){
echo
$key
.
‘:‘
.
$value
.
‘<br>‘
;
}
}
六、数组排序
1.sort() 、 rsort() 对数组进行升序和降序
$fruits
=
array
(
"lemon"
,
"orange"
,
"banana"
,
"apple"
);
sort(
$fruits
);
print_r(
$fruits
);
2.ksort()、krsort() 对数组按索引进行升序或降序, 并保持索引关系
$fruits
=
array
(
"l"
=>
"lemon"
,
"o"
=>
"orange"
,
"b"
=>
"banana"
,
"a"
=>
"apple"
);
ksort(
$fruits
);
print_r(
$fruits
);
七、二维数组 数组元素的值也可以是数组;
$result
=
array
(
array
(
‘pname‘
=>
‘nokia n73‘
,
‘price‘
=> 1500,
),
array
(
‘pname‘
=>
‘nokia 5800‘
,
‘price‘
=> 2000,
),
);
遍历二维数组:
foreach
(
$products
as
$product_k
=>
$product_v
){
foreach
(
$product_v
as
$key
=>
$val
){
echo
$key
.
‘=>‘
.
$val
;
}
}
八、字符串与数组转换
1.
explode
() 返回由字符串组成的数组
$str
=
"1,2,3,4,5,6"
;
$arr
=
explode
(
‘,‘
,
$str
);
print_r(
$arr
);
2.implode() 将数组元素连接成字符串
$arr
=
array
(
‘a‘
,
‘b‘
,
‘c‘
,
‘d‘
);
$str
= implode(
‘|‘
,
$arr
);
echo
$str
;
练习:
1.新建一个数组的函数为?
A.
array
B. next C.
count
D. reset
2.下列说法正确的是?
A. 数组的下标必须为数字,且从
"0"
开始
B. 数组中的元素类型必须一致;
C. 数组的下标可以是字符串;
D. 数组的下标必须是连续的;
3. 以下代码运行的结果?
$week
=
array
(
‘Monday‘
,
‘Tuesday‘
, 3=>
‘Wednesday‘
);
echo
$week
[2];
4.以下代码运行的结果为?
$arr
=
array
(
"a"
=> 123,
"b"
=> 456 ;
"c"
=> 789);
for
(
$i
= 0;
$i
<
count
(
$arr
),
$i
++){
echo
$arr
[
$i
].
" "
;
}
A. 打印3个空格;
B. 123 456 789
C. 提示错误
D. (打印6个 )
标签:
原文地址:http://www.cnblogs.com/jacko/p/4882056.html