php学习之路----数组,多维数组,数组函数
数组基本写作格式:
1:简单形式 Array("aa",12,true,2.2," test",50);
2:完整形式 Array("title"=>"aa","age"=>20);这种格式为数组创建了键名,如果创建了键名,就不能通过下标0,1,2。。。来访问数组元素
了。
3:$arr[0]=‘20‘; $arr[1]=‘hello world‘;
数组的创建,修改,删除,使用
修改数组元素
$arr=array(11,22,33,44);
$arr[0] = 66; 数组变为$arr=array(66,22,33,44);
删除数组元素
$arr = array(11,22,33,44);
unset($arr[0]); 数组变为$arr = array(22,33,44);
访问单个元素,可以通过下标或者通过键名访问
$arr = array(11,22,33,44);
echo $arr[0]; 值为11------对于简单数组,可以通过下标来访问
$arr = array(‘a‘=>11,‘b‘=>22,‘c‘=>33);
echo $arr[‘b‘];值为22-----对于这种数组,是没有办法通过下标来访问数组元素的
数组的遍历
所谓遍历数组就是将数组里的元素根据要求逐个打印或者得到相关的值。我们可以通过php5之后提供的一个非常不错的函数foreach实现,格式如
下。
foreach($arr as $key=>$val){
[相关$key 或 $val 内容]
}
$arr--要访问的数组 $key---数组的键名或者下标存储的变量 $val--数组的键值存储的变量
数组的遍历
$info = array("A"=>"php","B"=>"100","c"=>"com");
foreach($info as $value){
echo $value."<br>";
}
这种遍历格式,只是访问数组的键值,忽略数组的键名。
echo "<hr>";
foreach($info as $id=>$value){
echo $id."---".$value."<br>";
}
这种遍历方式可以访问数组的键名和键值。
值得注意的是:foreach理论上只能遍历一维数组。
二维数组
二维数组或者多维数组其实我们可以理解成为数组里面再次包含了数组类型的值,并通过同样的思路去访问。下面构造一个二维数组。
$arr = array(array("p","pp","ppp"),array("H","HH","HHH"));
echo $arr[1][2]; 打印出来的值是HHH
下面给出几个例子
$arr = array(1,2,3,4,5);
打印数组的函数有var_dump,print_r
var_dump打印出来后会显示键值的数据类型,print_r打印出来后不会显示键值的数据类型。
一般数组的默认的下标是从0开始的,想下面这种书写格式。
$arr = array("a","v","c","6");
假如我们想数组的下标默认的从4开始的话,只需要这样声明数组就可以了。
$arr = array(4=>"a","v","c","6");后面的下标就会从4开始,下标依次为4,5,6,7。
我们也可以这样声明数组
$arr = array(4=>"a","v",45=>"c","6");这样做的话,下标依次是4,5,45,46。
好,接下来我们再声明一个数组,检验一下删除数据元素后,数组的下标变化。
$arr = array("a","b","c","d");
unset($array[3]); 打印键名为0,1,2。
unset($array[1]); 打印键名为0,2,3。
下面遍历一下二维数组,假如我们确定是二维数组的话。
声明二维数组
$arr = array(array("4","444"),"2","7","8","6");
foreach($arr as $key1=>$value1){
if(is_array($value1)){
foreach($value1 as $key2=>$value2){
echo $value2."<br>";
}
}else{
echo $value1."<br>";
}
}
这样我们就可以遍历二维数组了。
数组的排序
$arr = array(4,2,6,1);
从小到大对键值进行排序:sort($arr);
从大到小对键值进行排序:rsort($arr);
对数组的键名进行排序---注意大写字母排在小写字母的前面
$arr = array("A"=>4,"a"=>2,"C"=>6);
ksort($arr);
krsort($arr);
统计数组元素个数的函数count($arr);
求数组和的函数 array_sum($arr);---结果是12
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。