一、数组
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;
?>