### PHP数组:
数组时一组关键字和值得集合,值可以是任何一种类型;看下面简单的入门案例:
~~~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> 数组入门 </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<?php
$hens[0]=3;
$hens[1]=5;
$hens[2]=2.5;
$hens[3]=4;
$hens[4]=3.5;
$hens[5]=17;
//为了计算数组元素的个数,使用系统函数count;
echo "最共有".count($hens)." 只鸡<br/>";
$allwight=0;
for($i=0;$i<count($hens);$i++){
echo "第".$i."只鸡重量".$hens[$i]."<br/>";
$allwight+=$hens[$i];
}
echo "最重量为:".$allwight.";平均重量为:".$allwight/count($hens);
?>
</body>
</html>
~~~
~~~
最共有6 只鸡
第0只鸡重量3
第1只鸡重量5
第2只鸡重量2.5
第3只鸡重量4
第4只鸡重量3.5
第5只鸡重量17
最重量为:35;平均重量为:5.8333333333333
~~~
- 创建数组
创建数组的方式很多,上面例子是最普通的一种方式。
在PHP数组中,每一个元素的值可以是任意的类型!
第二种方式:
~~~
$arr= array(1,90,"hello",null);
~~~
第三种方式创建数组
~~~
$arr["logo"] ="beijing";$arr["hsp"]=124;$arr[4]=678;
~~~
等同于下面的:
~~~
$arr=array("logo"=>"beijing","hsp"=>123,4=>678);
~~~
遍历方式:
~~~
foreach($arr as $key=>$val){
echo $key."=".$var."<br/>";
}
~~~
第三种方式 指定数组不能用for循环访问,应该用上面的方式遍历。
~~~
//数组注意事项:
//我们在创建数组的时候,如果没有给某个元素制定下标,PHP会自动的用目前最大的那个下标值(整数),加上1作为该元素的下标。
$arr=array(5=>"logo",55,56);
$arr=array(5=>"logo",6=>55,7=>56);
~~~
![](https://box.kancloud.cn/2016-06-03_5750fd516f4ba.jpg)
- 数组的一些应用
~~~
<?php
// 创建一个简单的数组
$array = array(1, 2, 3, 4, 5);
print_r($array);
echo "<br/>";
// 现在删除其中的所有单元,但保持数组本身的结构
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);
echo "<br/>";
// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
$array[] = 6;
print_r($array);
echo "<br/>";
// 重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);
echo "<br/>";
var_dump($array);
?>
~~~
~~~
执行结果:
~~~
~~~
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( )
Array ( [5] => 6 )
Array ( [0] => 6 [1] => 7 )
array(2) { [0]=> int(6) [1]=> int(7) }
~~~
- PHP相关的常用函数
1、count
统计数组元素的个数,使用:count($arr);
2、is-array
判断是否为数组,is_array($arr);
3、print_r 和var_dump(可显示数组元素类型)
显示数组信息
4、explode(在实际开发中,用途比较大)
拆分字符串函数。explode(“按照什么拆分”,字符串)
5、foreach
数组遍历函数:
~~~
foreach($arr as $key=>$val){
echo $key."=".$var."<br/>";
}
~~~
6、unset
unset()删除数组中的某个元素,但是不会重组索引。前面的例子已经说明!
7、array_values
重新索引,一般和上面的函数配合使用!具体看什么的例子
- 数组比较
~~~
<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);
$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>
~~~
~~~
Union of $a and $b:
array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}
Union of $b and $a:
array(3) {
["a"]=>
string(4) "pear"
["b"]=>
string(10) "strawberry"
["c"]=>
string(6) "cherry"
}
~~~
~~~
比较数组
<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");
var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>
~~~
~~~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> 综合案例 </title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<?php
//error_reporting(E_ALL^E_NOTICE);
$aar=$_REQUEST["grade"];
$arr=explode(",",$aar);
$allval=0;
foreach($arr as $val){
$allval+=$val;
}
?>
<h1>请输入学员的成绩,用逗号隔开</h1>
<form action="array03.php" method="post">
<input type="text" name="grade" value="<?php echo $aar ?>"/>
<input type="submit" value="计算平均值"/>
</form>
<?php
$aar=$_REQUEST["grade"];
$arr=explode(",",$aar);
$allval=0;
foreach($arr as $val){
$allval+=$val;
}
?>
<?php
echo "平均值:".round($allval/count($arr),2);
?>
</body>
</html>
~~~
![](https://box.kancloud.cn/2016-06-03_5750fd5185d83.jpg)
![](https://box.kancloud.cn/2016-06-03_5750fd519cdbc.jpg)
###
二维数组:
在内存中分布情况举例:
![](https://box.kancloud.cn/2016-06-03_5750fd8daafa9.jpg)
~~~
<?php
//二维数组
/* 0 0 0
1 2 3
4 5 6
*/
$arr = array(array(0,0,0),array(1,2,3),array(4,5,6));
for($i=0;$i<count($arr);$i++){
for($j=0;$j<count($arr[$i]);$j++){
echo $arr[$i][$j]." ";
}
echo "<br/>";
}
?>
~~~
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP开发环境配置说明
- PHP基础数据类型及运算符介绍
- 走进PHP函数
- 走进位运算
- 走进数组及相关数组函数
- 面向对象的编程(类与对象)
- 面向对象的编程(类成员方法用法)
- 构造方法,析构方法
- static,global用法
- 静态方法
- 面向对象的编程方法
- 接口方法
- 接口VS继承、final、const
- 错误及异常处理机制、错误日志
- HTTP协议深度剖析
- 文件下载
- PHP数据库编程
- 数据库编程(2)
- 超全局变量
- Zend studio 开发环境入门
- 雇员管理系统(1)
- 雇员管理系统(2)
- 会话技术(cookie session)
- 会话技术 session场景使用介绍!
- PHP.in中session和cookie的配置说明
- PHP文件编程
- 报表及绘图技术
- 报表及绘图技术(jpgraph库使用,Linux安装及配置说明)
- XML基本语法及DTD介绍
- XML编程(Dom技术)
- XML编程(Xpath技术,simpleXml技术)基础入门
- 网上支付平台PHP版本
- javascript基础入门