以前几篇文章分别介绍了PHP的运算符,流程控制,函数。有兴趣的能够去看看。
PHP入门之类型与运算符
PHP入门之流程控制
PHP入门之函数
接下来简单介绍一下数组。php
为何要引进数组,由于若是有一个需求,有好几十个数据须要统计,计算,若是不用数组,那么就要定义好几十个变量,这样是不合理的。因此引进了数组的概念。
下面用一个案例入门:若是如今有6个数据,要求他们的和还有平均数。这里使用数组。
代码以下:html
<?php $sums[0]=10; $sums[1]=11; $sums[2]=12.6; $sums[3]=24; $sums[4]=56; $sums[5]=28; $allsums=0; #count系统函数是用来统计数组个数的。 for ($i=0;$i<count($sums);$i++){ #这里使用for循环遍历数组,也能够while循环和do while 循环,均可以。 echo '<br/>'.$sums[$i]; # 可是使用这三个循环遍历,键值不能改,默认的0、一、2等等,只能是数字 $allsums+=$sums[$i]; # 若是想自定义键值,那么就要使用foreach()来遍历数组。 } echo '<br/>'.$allsums; #求总数 echo '<br/>'.$allsums/count($sums); #求平均数 ?>
理清楚几个概念,用$sums[0]=10来举例
[0] 这个咱们叫下标或者关键字。
$sums[0] 这个咱们叫作数组的一个元素。
10 这个咱们叫作$sums[0]对应的值。
$sums 这个叫作数组的名称。
还有就是元素存放的值能够是任何数据类型。
举个例子web
<?php $arr[0]=123; $arr[1]=34.789; $arr[2]="hello"; for($i=0;$i<count($arr);$i++){ #能够正常输出 : 123 34.789 hello echo '<br/>'.$arr[$i]; } ?>
第二种建立数组的方法。
举个例子数组
<?php $arr=array(123,34.789,"hello"); for ($i=0;$i<count($arr);$i++){ echo '<br/>'.$arr[$i]; #能够正常输出 : 123 34.789 hello } ?>
第三种方法建立数组的方法
举个例子:函数
$arr['logo']="123"; $arr['haha']=34.789; $arr['qqq']="hello";
或者
$arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello");
这样的话遍历就用foreach()用来遍历。
代码以下post
foreach ($arr as $key=>$val){ echo "<br/>$key=$val"; }
数组中键对应的值能够修改,例子以下:ui
$arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello"); $arr['logo']="lxf"; foreach ($arr as $key=>$val){ echo "<br/>$key=$val"; } echo '<br/>'.$arr['logo'];
咱们能够用print_r()
或者var_dump()
来显示这个数组。
上面的例子显示以下:
Array ( [logo] => lxf [haha] => 34.789 [qqq] => hello )
array(3) { ["logo"]=> string(3) "lxf" ["haha"]=> float(34.789) ["qqq"]=> string(5) "hello" }
若是一个数组为$arr=array(11,33,44);
咱们输出 echo $arr[3];由于没有这个键值,因此会报一个错误,在php中不算致命错误,其余好比Java是致命错误, 这个错误叫数组越界。
php语言中,数组能够动态增加,举个例子。code
$arr=array(4,7,9); $arr[3]=466; echo $arr[3];
在这个例子中,会输出466,不会报错。
与PHP数组相关的几个重要函数
(1)count函数
统计数组元素个数
(2)is_array函数
用来肯定是否是数组,举个例子。orm
$arr=array(12,34,24); echo is_array($arr); #这里会返回1为真。若是 $arr=123; echo is_array($arr); #这里会返回空,为假。
(3)拆分字符串explode("按照什么拆分",字符串),举个例子htm
$str="老大,老二,老三,老四"; $arr=explode(",",$str); print_r($arr);
输出结果为:
#由字符串变为数组了。 Array ( [0] => 老大 [1] => 老二 [2] => 老三 [3] => 老四 )
若是要删除某个元素的键-值对须要使用unset()函数,须要注意的是,删除后不会从新创建索引。举个例子:
$arr=array(1,2,5,8); unset($arr[2]); print_r($arr);
输出结果为:
unset也能够销毁某个变量
Array ( [0] => 1 [1] => 2 [3] => 8 )
能够同时删除多个
$arr=array(1,2,5,8); unset($arr[2],$arr[3]); print_r($arr);
输出结果为:
Array ( [0] => 1 [1] => 2 )
数组运算符
$a + $b 联合 $a 和 $b 的联合。
$a == $b 相等 若是 $a 和 $b 具备相同的键/值对则为 TRUE。
$a === $b 全等 若是 $a 和 $b 具备相同的键/值对而且顺序和类型都相同则为 TRUE。
$a != $b 不等 若是 $a 不等于 $b 则为 TRUE。
$a <> $b 不等 若是 $a 不等于 $b 则为 TRUE。
$a !== $b 不全等 若是 $a 不全等于 $b 则为 TRUE。
要求:将输入的数据所有输出,并求平均值。
array1.php <html> <head> <title>数组练习</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <h1>输入6个数据,空格隔开</h1> <form action="array2.php" method="post"> <input type="text" name="sum"> <input type="submit" value="提交"> </form> </body> </html>
array2.php
<?php $sums=$_POST['sum']; $arr=explode(" ",$sums); $allarr=0; foreach ($arr as $key=>$val){ $allarr+=$val; #遍历数组 echo '<br/>'."第"."$key"."=".$val; } #求总数 echo '<br/>'."总和=".$allarr; #求平均值 echo '<br/>'."平均数=".round($allarr/count($arr),2); ?> <br/><a href="array1.php">返回初页面</a>
下面输入13 34 67 89 89 27 结果以下图:
上面对数组进行了简单的介绍,但愿对你们有所帮助。