1、什么是数组
一个数组,从简单的形式来讲,是一个保存变量的变量
array('a'=>'php100','b'=>12.3)
2、如何创建数组
2.1、第一种格式(无键名,程序自动分配键名:默认从0开始分配)<?php $arr=array("chuangen",100,33.33,false); var_dump($arr); ?>
2.2、第二种格式(有键名)
键名不能一样<?php $arr=array('a'=>chuangen",'b'=>100,2=>33.33,3=>false); var_dump($arr); ?>
2.3、直接给数组赋值
<?php $arr['name']='张三'; $arr[]=100;//键名:0 $arr[5]=100;//键名:5 $arr[]=100;//键名:6 $arr[]=100;//键名:7 var_dump($arr); ?>
3、获取数组的值
\(arr[键名] 4、**查看数组** 使用print_r(\)arr)。不能使用echo,但如果查看数组中的某个值是可以使用echo。
print_r($arr)后的页面中"查看源代码"方式查看到的结构更加清晰。
5、多维数组<?php $arr=array('a'=>array('a','b','c'),'b'=>array(1,2,3)); echo $arr['b'][2]; ?>
1、
bool is_array(mixed $var)
:判断一个变量是否是数组<?php $arr=array('a','b','c'); echo is_array($arr)?"是数组":"不是数组"; ?>
2、
int array_unshift(array &$array,mixed $var [,mixed $...])
:在数组头添加元素<?php $arr=array('a','b','c'); $result= array_unshift($arr,'php'); print_r($arr); echo $result;//数组的个数 ?>
3、
mixed array_shift(array &$array)
:在数组头删除元素<?php $arr=array('a','b','c'); $result=array_shift($arr); print_r($arr); print_r($result);//被删除的元素:a ?>
4、
mixed array_pop(array &$array)
:在数组尾删除元素<?php $arr=array('a','b','c'); $result=array_pop($arr); print_r($arr); print_r($result);//被删除的元素:c ?>
5、在数组尾部添加元素(直接写就行)
<?php $arr=array('a','b','c'); $arr[]=array(1,2,3); print_r($arr); ?>
6、
bool in_array(value,array[,type])
:判断数组内是否存在值<?php $arr=array('a','b','c'); echo in_array('a',$arr)?"存在":"不存在"; print_r($arr); ?>
7、
array array_unique(array $array)
:移除数组中重复的值<?php $arr=array('a'=>100,'b'=>200,'c'=>100); $result=array_unique($arr); print_r($arr);//原数组不变 print_r($result);//移除后的数组 ?>
8、
number array_sum(array $array)
:数组元素求和
'number':有两种类型,整型和浮点型<?php $sum=array('0'=>'5','1'=>'10','2'=>'15','3'=>'20'); echo array_sum($sum); $sum=array('0'=>'1.1','1'=>'2.1','2'=>'3.1','3'=>'4.1'); echo array_sum($sum); ?>
9、数组键与值的排序
bool sort(array &$array)//值正序 bool rsort(array &$array)//值倒序 bool ksort(array &$array)//键正序 bool krsort(array &$array)//键倒序 <?php $arr=array('a'=>100,'c'=>200,'b'=>30); sort($arr); print_r($arr); ?>
第一种语法格式:
foreach($arr as $key=>$value){ //循环体 }
<?php $arr=array('a'=>'php','b'=>'java','html','c++'); foreach ($arr as $key => $value) { echo $key.'=>'.$value.'<br/>'; } ?>
第二种语法格式:
foreach($arr as $value){ //循环体 } <?php $arr=array( array("张三","女","23"), array("李四","男","21"), array("王五","女","33"), array("赵四","男","56") ); foreach ($arr as $v) { echo "姓名:".$v[0]."性别:".$v[1]."年龄:".$v[2]."<br/>"; } ?>
例子:
递归遍历数组中的所有元素<?php $arr=array(1,2,3,4,array(11,22,33,array(111,222,333))); function fun_array($arr,&$str){ foreach ($arr as $v) { if (is_array($v)) { fun_array($v,$str); } else{ $str.= $v."<br/>"; } } } $str=""; fun_array($arr,$str); echo $str; ?>