一、数组类型
见图解!
二、数组创建
方法一、
变量名称[索引值]=数据;
变量名称[]=数据;//不写索引值默认是 索引数组,从0开始
方法二、
变量名称=array(
索引值=>数据,
…
);
数据里面还可放数组类型的数据,同一个数组中存储任何类型的数据
多维数组:
访问数值的方法
变量名称[索引值][索引值]…
三、数组的遍历
遍历数组:每个都经历一遍的意思
1)for循环
用的比较少,因为有缺陷
2)foreach语句来实现遍历数组的目的
foreach(数组变量 as 变量1){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据
}
foreach(数组变量 as 变量1=>变量2){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据的索引值
变量1代表当前正在经历(访问)的数据
}
四、预定义超全局数组变量
已经定义好了(存在)的变量(存放的数据的类型是数组)。
超全局:超级全局变量,作用域(有效区域)!
传递数据(提交数据)给服务器端主要两种方式
1.get方式
比如:
?参数名=参数值&参数名=参数值......
http://localhost/demo5_3/index.php?参数名=参数值
在服务器端(请求的php文件这边)可以通过$_GET来获取到
$_GET索引值为参数名,索引值对应的数据就是参数值
2.post方式
比如表单 post发送过来的!
可以通过$_POST来获取到!
五、处理数组的相关函数
我们挑几个讲一下,并不是这几个重要其他的不重要,而通过这几个的学习让大家学会怎么通过查手册来使用数组相关的函数!
1)array_count_values
$array = array(1, “hello”, 1, “world”, “hello”);
a
r
r
=
a
r
r
a
y
c
o
u
n
t
v
a
l
u
e
s
(
arr=array_count_values(
arr=arraycountvalues(array);//函数返回数组类型的数据
print_r($array);//原来的数组不会受到任何影响
2)array_key_exists
s
e
a
r
c
h
a
r
r
a
y
=
a
r
r
a
y
(
′
f
i
r
s
t
′
=
>
1
,
′
s
e
c
o
n
d
′
=
>
4
)
;
v
a
r
d
u
m
p
(
a
r
r
a
y
k
e
y
e
x
i
s
t
s
(
′
s
e
c
o
n
d
′
,
search_array = array('first' => 1, 'second' => 4); var_dump(array_key_exists('second',
searcharray=array(′first′=>1,′second′=>4);vardump(arraykeyexists(′second′,search_array));
3)array_search
$array = array(0 => ‘blue’, 1 => ‘red’, 2 => ‘green’, 3 => ‘red’,4=>15);
var_dump(array_search(‘15’, $array,true));
4)count
a
r
r
a
y
=
a
r
r
a
y
(
0
=
>
′
b
l
u
e
′
,
1
=
>
′
r
e
d
′
,
2
=
>
′
g
r
e
e
n
′
,
3
=
>
′
r
e
d
′
,
4
=
>
15
)
;
v
a
r
d
u
m
p
(
c
o
u
n
t
(
array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red',4=>15); var_dump(count(
array=array(0=>′blue′,1=>′red′,2=>′green′,3=>′red′,4=>15);vardump(count(array));
5)in_array
$os = array(“Mac”, “NT”, “Irix”, “Linux”);
var_dump(in_array(‘Mac’, $os));
6)list
a
r
r
=
a
r
r
a
y
(
60
,
80
,
100
)
;
l
i
s
t
(
arr=array(60,80,100); list(
arr=array(60,80,100);list(sunshengli,
x
i
a
o
h
o
n
g
,
xiaohong,
xiaohong,xiaoming)=array(60,80,100);
echo $sunshengli;
7)asort
s
t
u
d
e
n
t
s
=
a
r
r
a
y
(
′
s
u
n
s
h
e
n
g
l
i
′
=
>
60
,
′
l
i
l
e
i
′
=
>
80
,
′
h
a
n
m
e
i
m
e
i
′
=
>
100
,
′
z
h
a
n
g
s
a
n
′
=
>
90
)
;
a
s
o
r
t
(
students=array( 'sunshengli'=>60, 'lilei'=>80, 'hanmeimei'=>100, 'zhangsan'=>90 ); asort(
students=array(′sunshengli′=>60,′lilei′=>80,′hanmeimei′=>100,′zhangsan′=>90);asort(students);
print_r(
s
t
u
d
e
n
t
s
)
;
直
接
对
数
组
里
面
的
数
据
进
行
排
序
,
第
二
个
参
数
S
O
R
T
R
E
G
U
L
A
R
−
正
常
比
较
单
元
(
不
改
变
类
型
)
S
O
R
T
N
U
M
E
R
I
C
−
单
元
被
作
为
数
字
来
比
较
S
O
R
T
S
T
R
I
N
G
−
单
元
被
作
为
字
符
串
来
比
较
S
O
R
T
L
O
C
A
L
E
S
T
R
I
N
G
−
根
据
当
前
的
区
域
(
l
o
c
a
l
e
)
设
置
来
把
单
元
当
作
字
符
串
比
较
。
8
)
a
r
r
a
y
f
i
l
t
e
r
f
u
n
c
t
i
o
n
o
d
d
(
students); 直接对数组里面的数据进行排序,第二个参数 SORT_REGULAR - 正常比较单元(不改变类型) SORT_NUMERIC - 单元被作为数字来比较 SORT_STRING - 单元被作为字符串来比较 SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较。 8)array_filter function odd(
students);直接对数组里面的数据进行排序,第二个参数SORTREGULAR−正常比较单元(不改变类型)SORTNUMERIC−单元被作为数字来比较SORTSTRING−单元被作为字符串来比较SORTLOCALESTRING−根据当前的区域(locale)设置来把单元当作字符串比较。8)arrayfilterfunctionodd(var)
{
return($var % 2 == 1);
}
function even($var)
{
return($var % 2 == 0);
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));