数组的简单的应用
一维数组:
<?php
$seasons=array("春","夏","秋","冬"); //创建一个一维数组
print_r($seasons); //打印一维数组
?>
二维数组 :
<?php
$city=array( //定义二维数组
"黑龙江"=>array("哈尔滨","大庆"),
"吉林"=>array("长春","吉林","公主岭")
);
print_r($city); //显示二维数组
?>
多维数组:
<?php
$number=array( //定义多维数组
"一"=>array(
"a"=>array("first","second","third"),
"b"=>array("four","five","six")
),
"二"=>array(
"A"=>array("1","2","3"),
"B"=>array("4","5","6")
)
);
print_r($number); //显示多维数组
?>
创建数组的两种方法:
方法一:
<?php
$letters [0]= "a"; //使用初始化方式创建数组
$letters [1]= "b";
$letters [2]= "c";
?>
方法二:
<?php
$letters=array( 0=>"a",1=>"b",2=>"c"); //使用array()结构创建数组
?>
添加数组元素:
<?php
$letters=array(); //使用array()结构创建数组
$letters []="a"; //为数组letters添加新元素"a"
$letters []="b"; //为数组letters添加新元素"b"
$letters []="c"; //为数组letters添加新元素"c"
?>
更新数组元素:
<?php
$letters=array( //使用array()结构创建数组
0=>"a",
1=>"b",
2=>"c"
);
$letters[0]="A"; //更新数组元素a为A
?>
删除数组元素:
<?php
$letters=array( //使用array()结构创建数组
0=>"a",
1=>"b",
2=>"c"
);
unset($letters[2]); //删除数组元素c
?>
遍历数组元素:
方法一:for
<?php
$letters=array( //使用array()结构创建数组
0=>"a",
1=>"b",
2=>"c"
);
for($i=0;$i<count($letters);$i++){
$value=$letters[$i];
echo"$i --- $value<br>";
}
?>
方法二:foreach循环
<?php
$letters=array( //使用array()结构创建数组
0=>"a",
1=>"b",
2=>"c"
);
foreach($letters as $key=>$value){
echo"$key --- $value <br>";
}
?>
方法三:list each reset
<?php
$letters=array( //使用array()结构创建数组
0=>"a",
1=>"b",
2=>"c"
);
reset($letters); //将数组内部指针倒回到第一个单元
while(list($key,$value)=each($letters)){
print"$key --- $value<br>";
}
?>
数组排序:
1:sort函数和rsort函数
Sort函数实现数组从低到高的排序 rsort实现了数组的从高到底的排序
<?php
$number=array(91,63,22,84,45,73,16); //定义数组$number
echo"排序前的结果为: ";
foreach($number as $value){ //使用foreach循环结构遍历数组
echo $value." ";
}
echo "<br>";
echo"排序后的结果为: ";
sort($number); //使用sort()函数排序数组$number
foreach($number as $value){ /使用foreach循环结构遍历数组
echo $value." ";
}
?>
2:asrt函数和arsort函数
<?php
$languages['Tom'] = "PHP"; //定义关联数组$languages
$languages['Paul'] = "JAVA";
$languages['Lily'] = "C++";
echo"排序前的结果为:";
foreach($languages as $key=>$value){ //使用foreach循环结构遍历数组
echo "$key-$value ";
}
echo "<br>";
asort($languages); //使用asort()函数对数组进行从低到高排序
echo"排序后的结果为:";
foreach($languages as $key=>$value){ //使用foreach循环结构遍历数组
echo "$key-$value ";
}
?>
3:ksort函数和krsort函数
这两个函数分别实现了对数组键名进行从低到高的排序,以及数组键名从高到底的排序
<?php
$balls=array( //使用array结构定义数组
4=>"乒乓球",
1=>"排球",
3=>"羽毛球",
6=>"篮球",
);
echo "排序前的结果为:";
foreach($balls as $key=>$value){ //使用foreach循环结构遍历数组
echo "$key-$value ";
}
echo "<br>";
ksort($balls); //使用ksort()函数对数组进行从低到高排序
echo"排序后的结果为:";
foreach($balls as $key=>$value){ //使用foreach循环结构遍历数组
echo "$key-$value ";
}
?>
实现数组随机排序
<?php
$days=array("星期一","星期二","星期三","星期四","星期五","星期六","星期日");
shuffle($days);
foreach($days as $value){ //使用foreach循环结构遍历数组
echo $value." ";
}
?>
数组判断函数:
1:确定元素是否在数组中(根据返回值为true和false判定)
<?php
$names = array("Peter", "Tom", "Paul", "Bob");
$boolean=in_array("peter",$names,true);
if ($boolean){ //确定元素是否在数组中
echo "peter 在数组中<br>";
}else{
echo "peter 不在数组中<br>";
}
$boolean2=in_array("Tom",$names,true);
if ($boolean2){ //确定元素是否在数组中
echo "Tom 在数组中<br>";
}else{
echo "Tom 不在数组中<br>";
}
?>
判断键名是否在数组中
<?php
$balls= array(
"排球"=>"vollyball",
"乒乓球"=>"pingpong",
"篮球"=>"basketball"
);
$boolean=array_key_exists("乒乓球",$balls);
if ($boolean){ //确定键名是否在数组中
echo "乒乓球 在数组中<br>";
}else{
echo "乒乓球 不在数组中<br>";
}
$boolean2=array_key_exists("足球",$balls);
if ($boolean2){ //确定键名是否在数组中
echo "足球 在数组中<br>";
}else{
echo "足球 不在数组中<br>";
}
?>
数组元素的统计函数count sizeof
<?php
$city = array("长春", "北京", "上海", "沈阳");
$result = count($city);
echo "数组中共有 ".$result." 个元素";
?>
数组的合并和拆分
数组的合并
Array_merg()函数的功能就是把两个或者多个数组合并为一个数组,如果键名有重复,后面的键名对应的值会覆盖掉前面的值
<?php
$balls1=array("B"=>"篮球","D"=>"羽毛球");
$balls2=array("A"=>"足球","B"=>"排球","C"=>"乒乓球");
$merge=array_merge($balls1,$balls2); //合并数组a1和数组a2
print_r($merge);
?>
数组的拆分
Array_chunk()
<?php
$balls=array("排球","乒乓球","篮球");
$chunk=array_chunk($balls,2,true); //合并数组a1和数组a2
print_r($chunk);
?>
其他常用的数组函数
1:利用range()函数快速创建一个数组
<?php
$numbers=range(0,2);
print_r($numbers);
?>
<?php
$step=range(0,12,5);
print_r($step);
?>
<?php
$letters=range("A","C");
print_r($letters);
?>
2:array_reverse()翻转数组
<?php
$letters= array(a,b,c,d,e);
echo"翻转前为:";
foreach($letters as $value){
echo " $value ";
}
$reverse=array_reverse($letters);
echo"<br>";
echo"翻转后为:";
foreach($reverse as $value){
echo " $value ";
}
?>
3:使用array_sum()函数求数组函数的和
<?php
$array=array("50","24","hello","21","sunyang","5"); //字符串"hello"被忽略,不参与求和运算
$sum=array_sum($array);
echo "求和运算的结果为:".$sum; //输出求和运算的结果
?>
4:利用array_flie()函数对调数组的键名和值
<?php
$balls= array(
"排球"=>"vollyball",
"乒乓球"=>"pingpong",
"篮球"=>"basketball"
);
$flip=array_flip($balls);
print_r($flip);
?>