可以使用单个变量名存储多个不同类型的数据的特殊变量,这就是php数组。
php数组就是一个特殊的变量,它允许存储多个任意类型的数据。
php数组有两种类型,分为索引数组和关联数组。
创建数组的方法有三种,分为有[]的、无[]的、有=>的三种创建方法。
索引数组:变量的“编号”是数,整数不具备一定的语义。
关联数组:变量的"编号”用字符中表示,可以具备一定的语义。
键:key,存储数组中,是变量的“编号”,索引数组的编号默认从0开始。
值:value,存储数组中,变量的值,由用户自定义创建。
php数组可以储存任意类型的数据,php会自动识别。
键key就是数组中元素的编号,值value是元素的数值。
索引数组和关联数组的不同在于键的不同,索引数组的键是数字,关联数组的键可以用字符,具备一定的含义。
下面代码中单引号和双引号都代表字符型,如布尔型数值true无单引号会输出1来代表男,有单引号会输出true。
var_dump代表输出数据类型和数值。
索引数组的创建:
创建一个索引数组,存储xiu用户的姓名,性别,年龄和成绩,并输出
$name="xiu";
$sex=true;
$age= 18;
$score= 99.9;
$stu1[]=$name;
$stu1[]=$sex;
$stu1[]=$age;
$stu1[]=$score;
var_dump($stu1);
?>
或:
用array创建一个包含xiu的姓名,性别,年龄和成绩的索引数组,无[]即无键,会默认从0分配数字作为键,非array创建时必须写[],负责会作为变量覆盖。
$stu1=array("xiu",true,18,99.9);
var_dump($stu1);
?>
关联数组的创建:
创建一个关联数组,存储xiu用户的姓名,性别,年龄和成绩,并输出
$stu1['name']="xiu";
$stu1['sex']=true;
$stu1['age']=18;
$stu1['score'] = 99.9;
var_dump($stu1);
?>
输出结果:
array(4) { [“name”]=> string(3) “xiu” [“sex”]=> bool(true) [“age”]=> int(18) [“score”]=> float(99.9) }
或:
array创建一个关联数组,存储xiu用户的姓名,性别,年龄和成绩,并输出
$stu1=array("name"=>"xiu","sex"=>true,"age"=>"18","score"=>"99.9");
print_r($stu1);
?>
或:
$stu1 = array(
'name' => 'xiu',
'sex' => true,
'age' => 24,
'score' => 99.9
);
print_r($stu1);
?>
输出结果:
Array ( [name] => xiu [sex] => 1 [age] => 24 [score] => 99.9 )
print_r与echo类似,不同的是,在输出布尔类型true的时候是1,false为空。
由于print_r和echo都不能只输出php数组中的数据,而安全人员需要查看数据中是否有恶意数据,所以需要for循环来打印数组数据,需要注意的是,简单的for循环只能打印键为数字的数组,也就是索引数组,如果要打印键为字符的数组数据,需要更复杂的循环。
$stu1=array("xiu",true,18,99.9);
for($i=0;$i<4;$i++){
echo $stu1[$i];
echo "
";
}
?>
输出结果:
xiu
1
18
99.9
foreach语句将遍历数组array,每次循环时,将当前数组中的值赋给value(或者k e y 和 key和key和value),同时,数组指针向后移动直到遍历结束。当使用foreach语句时,数组指针将自动被重置,所以不需要手动设置指针位置。
仅输出value:
$stu1 = array(
'name' => 'xiu',
'sex' => true,
'age' => 24,
'score' => 99.9
);
foreach ($stu1 as $v) {
echo $v."
";
}
?>
输出结果:
xiu
1
24
99.9
输出key=value:
$stu1 = array(
'name' => 'xiu',
'sex' => true,
'age' => 24,
'score' => 99.9
);
foreach ($stu1 as $k => $v) {
echo $k. "=". $v. "
";
}
?>
输出结果:
name=xiu
sex=1
age=24
score=99.9