数组
- 用于存放多个数据的数据类型
- 数组是关键字和值的集合
//[0]:下标(关键字)
//$arrayTest[0]:数组的一个元素
//$arrayTest[0]=1;1表示$arrayTest[0]元素对应的值
//$arrayTest数组名称
$arrayTest[0]=1;
$arrayTest[1]=2;
$arrayTest[2]=3;
- 元素存放的值可以是任意类型
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arrayTest[0]=1;
$arrayTest[1]="wowo";
$arrayTest[2]=3.14;
$arrayTest[3]=false;
$arrayTest[4]=NULL;
echo count($arrayTest); //5
?>
</html>
数组的三种创建方式
- 方式一
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arrayTest[0]=1;
$arrayTest[1]="wowo";
$arrayTest[2]=3.14;
$arrayTest[3]=false;
$arrayTest[4]=NULL;
echo count($arrayTest); //5
?>
</html>
- 方式二
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
//方式二
$arrayTest = array(1,"wowo",3.14,false,NULL);
for($i=0;$i<count($arrayTest);++$i){
echo 'arrayTest[$i]='.$arrayTest[$i];
echo "<br/>";
}
?>
</html>
- 方式三:自己指定关键字
- 错误演示,不能通过下标0,1…来访问元素
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
//方式三:自己指定关键字
$arrayTest['a1']=1;
$arrayTest['a2']=2;
for($i=0;$i<count($arrayTest);++$i){
echo 'arrayTest[$i]='.$arrayTest[$i];
echo "<br/>";
}
?>
</html>
- 正确演示
- foreach($数组名 as $value):$value代表数组元素的值
- foreach($数组名 as $key=>$val):$key代表关键字,$value代表数组元素的值
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
//方式三:自己指定关键字
$arrayTest['a1']=1;
$arrayTest['a2']=2;
echo $arrayTest['a1']."<br/>";
//foreach语句!!!
foreach($arrayTest as $value){
echo $value."<br/>";
}
foreach($arrayTest as $key=>$value){
echo "$key=".$value."<br/>";
}
?>
</html>
一维数组
- 创建数组时,如果没有给某个元素指定下标,php就会自动用之前相邻下标值自增得到该元素的下标值。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arrayTest=array(4=>"hello",6=>"yes",789);
echo $arrayTest[5]."<br/>";
echo $arrayTest[6]."<br/>";
echo $arrayTest[7];
?>
</html>
- 使用true作为键名即整型1作为键名;使用false作为键名即整型0作为键名。
- 使用NULL作为键名等同于使用空字符串;使用空字符串作为键名将新建(或者覆盖)一个用空字符串作为键名的值。
- 使用小数点作为键名,将自动截断小数部分。
- 不能使用数组或者对象作为键名。
- print_r($数组名);//将数组的所有信息显示出来。
- var_dump($数组名);//将数组更详细的信息显示出来。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arrayTest[true]=123;
echo $arrayTest[1]."<br/>";
$arrayTest[false]=456;
echo $arrayTest[0]."<br/>";
$arrayTest[NULL]="hello";
echo $arrayTest[""]."<br/>";
$arrayTest[""]="world";
echo $arrayTest[NULL]."<br/>";
$arrayTest[11.11]="everybody";
echo $arrayTest[11.11]."<br/>";
echo $arrayTest[11]."<br/>";
print_r($arrayTest);
echo "<br/>";
var_dump($arrayTest);
?>
</html>
php中数组动态增长
- 分析案例
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arrayTest=array(1,2);
$arrayTest[2]=3;
foreach($arrayTest as $value){
echo $value."<br/>";
}
?>
</html>
一维数组的常用函数
- count($数组名):统计数组的元素个数
- is_array($数组名):判断变量是否是一个数组
- print_f( 数 组 名 ) 和 v a r d u m p ( 数组名)和var_dump( 数组名)和vardump(数组名):显示数组
- explode(“按照什么拆分”,字符串):拆分字符串
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$stringTest="西安 北京 深圳 上海";
$arrayTest=explode(" ",$stringTest);
foreach($arrayTest as $value){
echo $value."<br/>";
}
?>
</html>
- unset函数销毁某个元素,也可销毁某个变量。注意:销毁元素后,关键字(下标)不会重新组合。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$arr[0]=12;
$arr[1]=34;
$arr[2]="hello";
echo "销毁前=".$arr[1]."<br/>";
unset($arr[1]);
echo "销毁后=".$arr[1]."<br/>";
print_r($arr);
?>
</html>
-
数组运算符
- 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
$a=array("a"=>"a1","b"=>"a2");
$b=array("a"=>"b1","b"=>"b2","c"=>"b3");
$c=$a+$b;
print_r($c);
echo "<br/>";
$d=$b+$a;
print_r($d);
echo "<br/>";
?>
</html>
-
数组小结
- 数组可存放任意类型的数据
- 数组大小不必事先指定,可以动态增长
- 数组名是指向数组首地址的引用
- 数组中的元素以key=>value的形式存在
- 创建数组时,如果没有给某个元素指定下标,php就会自动用之前相邻下标值自增得到该元素的下标值
-
数组实例:统计平均数
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
//界面互动
<form action="3.php" method="post">
<input type="text" name="datas" value="请输入数据,以空格分离"/>
<input type="submit" name="submit" value="提交"/>
</form>
</body>
</html>
<html>
<body>
<?php
//重点:读取其他页面的值
$datas=$_REQUEST['datas'];
$arr=explode(" ",$datas);
$avg=0.0;
foreach($arr as $value){
$avg+=$value;
}
//rount($变量,整数值):保存几位小数
echo "平均值=".(round($avg/count($arr),2));
?>
</body>
</html>
二维数组
-
基本语法
- $arr=array(array(),array()…)
- $arr=array(array(1,2),array(3,4));