您的位置 首页 php

PHP入门读书笔记(十四):使用数组函数

一、遍历数组

1、使用foreach结构遍历数组

foreach 结构并非操作数组本身,而是操作数组的一个备份。

 <?php
$arr = array("mon"=>"星期一","tues"=>"星期二","wed"=>"星期三","thur"=>"星期四","fri"=>"星期五","sat"=>"星期六","sun"=>"星期天");
foreach($arr as $day){
echo $day." ";
}
?>
输出结果:
星期一 星期二 星期三 星期四 星期五 星期六 星期天  
 <?php
$arr = array("mon"=>"星期一","tues"=>"星期二","wed"=>"星期三","thur"=>"星期四","fri"=>"星期五","sat"=>"星期六","sun"=>"星期天");
foreach($arr as $key=>$value){
echo  $value."($arr[$key])($key)";
}
?>
输出结果:
星期一(星期一)()星期二(星期二)()星期三(星期三)()星期四(星期四)()星期五(星期五)()星期六(星期六)()星期天(星期天)()  

这里复习了循环迭代的使用方式,我自己在测试的时候不知道为什么这个$key是未提示非法的参数,这个原因待检查。

forech的语法格式:

 foreach(array_expression as $value){  .... }  
 foreach(array_exoression as $key=>$value){ ..... }  

2、使用list()函数遍历数组

list()函数是把数组中的值赋值给一些变量。与array()函数类似,list()函数不是一个真正的函数,而是一种语言结构。list()函数只能用于数字索引且索引值从0开始的数组。

 语法格式:void list(mixed....);  

参数 mixed 为被赋值的变量名称

list函数使用过程中还有一个each()函数。each()函数用于返回当前指针位置的数组值,同时将指针推进到下一个位置。返回的数组包含4个键,键0和key包含键名,而键1和value包含相应的数据。如果程序在执行的each()函数时指针已经位于数组末尾,则返回false

 <?php
$arr = array("早上","下午","晚上");
while(list($index,$value)=each($arr)){
echo "$index - $value <br/> ";
}
?>
输出结果:
0 - 早上 
1 - 下午 
2 - 晚上  

二、字符串和数组的转换

1、使用explode()函数将字符串转换为数组

 语法格式:array explode(string separator,string string,[int limit]);  

返回值是一个字符串组成的数组,每个数组元素都是指定字符串string的一个子串。它们使用separator作为分隔符分隔出来。如果设置了limit参数,则返回的数组最多包含limit个元素,最后那个元素将包含strIng的剩余部分。如果separator是一个空字符串(“”),则函数返回false,如果separator的值在string中找不到,那么函数返回包含strIng单个元素的数组。如果参数limit是负数,则返回除了最后的limit个元素外的所有元素。

 <?php
$str = "早上,下午,晚上";
$arr = explode(",",$str);
print_r($arr);
?>
输出结果:
Array ( [0] => 早上 [1] => 下午 [2] => 晚上 )  
 <?php
$str = "一月#二月#三月";
$arr = explode("#",$str);
while(list($index,$value) = each($arr)){
echo "$index - $value  <br/>";
}
?>
输出结果:
0 - 一月 
1 - 二月 
2 - 三月  

2、使用implode()函数将数组转换为一个新字符串

 语法格式:string implode(string glue,array pieces);  

参数glue是字符串类型,是要传入的分隔符。参数pieces是数组类型,是要合并元素的数组变量名称。

 <?php
$arr = array("一月","二月","三月");
$str = implode("@",$arr);
echo $str;
?>
输出结果:
一月@二月@三月  

三、统计数组元素个数

 语法格式:int count(mixed array,[int mode]);  

参数array 是要统计的数组,参数mode是可选参数,值为0或者COUNT_RECURSIVE(1)。如果选中此参数,本函数将递归的对数组计数。对计算多维度数组的所有单元尤其有用。默认值是0。

比如统计一个二位数组的时候,直接默认使用函数只会统计一维数组的个数,而使用了COUNT_RECURSIVE 会统计到二维数组的个数,

 <?php
$arr = array("一月","二月","三月");
$count = count($arr);
echo $count;
?>
输出结果:
3  
 <?php
$arr = array(
"早上" => array("7点","9点"),
"下午" => array("13点","14点","15点")
);
$count1 = count($arr);
$count2 = count($arr,COUNT_RECURSIVE);
echo "mode为0的值:".$count1;
echo "<br/>";
echo "mode为 COUNT_RECURSIVE 的值:".$count2;
?>
输出结果:
mode为0的值:2
mode为 COUNT_RECURSIVE 的值:7  

四、查询数组指定元素

 语法格式:mixed array_search(mixed needle,array haystack,[bool strict]);  

参数needle是指定数组中要搜索的值,参数haystack是指定要被搜索的数组,参数strict是可选参数,如果值是true,还将在数组中检查给定值的类型。找到后返回键名,否则会返回false。在早期版本中,函数失败会返回null,而不是false。

 <?php
$arr = array("早上","下午","晚上");
$key = array_search("下午",$arr);
if($key==false){
echo "没有找到";
}
else{
$arr[$key] = "明天下午";
}
print_r($arr);
?>
输出结果:
Array ( [0] => 早上 [1] => 明天下午 [2] => 晚上   

这里是寻找下午,如果返回false,打印没有找到,否则修改该值为明天下午,最后输出结果数组。

五、获取数组中的最后一个元素

 语法格式:mixed array_pop(array array);  

参数array为要查找的数组。array_pop()函数获取并返回了数组的最后一个元素,并将数组的长度减1,如果数组为空,或者不是数组,将返回null。

 <?php
$arr = array("早上","下午","晚上");
$str = array_pop($arr);
$count = count($arr);
echo "最后一个的是:".$str;
echo "<br/>";
echo "数组长度:".$count;
echo "<br/>";
print_r($arr);
?>
输出结果:
Array ( [0] => 早上 [1] => 明天下午 [2] => 晚上 ) 
最后一个的是:晚上
数组长度:2
Array ( [0] => 早上 [1] => 下午 )  

注意:该函数会取出值并数组长度会减小

六、向数组中添加元素

 语法格式:int array_push(array array,mixed var,[mixed....]);  

参数array是指定的数组,参数var是要添加的数组元素的值。Array_push()函数将数组当成一个栈,将传入的变量加入到该数组的末端,数组的长度随着入栈变量数目的增加而增加。返回数组新的单元总数。

 <?php
$arr = array("一月","二月","三月");
$count = array_push($arr,"四月","五月");
 
echo "数组长度:".$count;
echo "<br/>";
print_r($arr);
?>
输出结果:
数组长度:5
Array ( [0] => 一月 [1] => 二月 [2] => 三月 [3] => 四月 [4] => 五月 )  

七、删除数组中的重复元素

 语法格式:array array_unique(array array);  

参数arrray是输入的数组。将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,也就是删除数组中的重复元素。

 <?php
$arr = array("1"=>"一月","2"=>"二月","3"=>"三月","4"=>"四月","5"=>"三月","6"=>"一月");
echo "处理前:";
print_r($arr);
echo "<br/>";
$af_arr = array_unique($arr);
echo "处理后:";
print_r($af_arr);
?>
输出结果:
处理前:Array ( [1] => 一月 [2] => 二月 [3] => 三月 [4] => 四月 [5] => 三月 [6] => 一月 )
处理后:Array ( [1] => 一月 [2] => 二月 [3] => 三月 [4] => 四月 )  

明天我们来看看php里的日期和时间

文章来源:智云一二三科技

文章标题:PHP入门读书笔记(十四):使用数组函数

文章地址:https://www.zhihuclub.com/77793.shtml

关于作者: 智云科技

热门文章

网站地图