PHP常用的数组相关处理函数
【数组中常用的多种遍历方式】
【for 和 foreach 略】
【while() 、 list() 、each() 组合循环遍历数组】
each()函数
a. 需要一个数组作为参数
b. 返回来的也是一个数组
c. 返回来的数组是0, 1, key, value四个下标 (固定的)
0 和key下标是当前参数数组元素的鍵
1 和value下标是当前对数数组元素的值
d. 默认认当前元素就是第一个元素
e. 每执行一次后就会将当前元素向后移动
f. 如果到最后的元素再执行这个函数,则返回 false
//Array ( [1] => 1 [value] => 1 [0] => id [key] => id )
list()函数
a. list()=array(); 需要将一个数组赋值给这个函数
b. 数组中的元素个数,要和 list()函数中的参数个数相同
c. 数组中的每个元素值会赋值 list()函数中的每个参数,list()将每个参数转为变量
d. list() 只能接收索引数组
e. 按索引的下标的顺序
$user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
while()函数
while($arr=each($user)){
//echo $arr[0]."==>".$arr[1]."<br>";
echo $arr["key"]."---->".$arr["value"]."<br>";
}
◆ 使用数组的内部指针控制函数
next( 数组); 将数组中的内部指针向前移动一位。
prev( 数组); 将数组的内部指针倒回一位。
reset( 数组) 将数组的内部指针指向第一个元素。
end( 数组); 将数组的内部指针指向最后一个元素。
current( 数组); 返回数组中的当前元素。
key( 数组); 从关联数组中取得键名。
【代码示例】
- <?php
- $user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
- while(list($key, $value)=each($user)){
- echo $key." : ".$value."<br>";
- }
- echo "<hr>";
- reset($user);
- while(list($key, $value)=each($user)){
- echo $key." : ".$value."<br>";
- }
- echo "<hr>";
- reset($user);
- next($user);
- next($user);
- while(list($key, $value)=each($user)){
- echo $key." : ".$value."<br>";
- }
- echo "<hr>";
- reset($user);
- echo current($user)." : ".key($user)."<br>";
- end($user);
- echo current($user)." : ".key($user)."<br>";
- prev($user);
- echo current($user)." : ".key($user)."<br>";
- ?>
【数组键 /值操作有关的函数】
1. array_values() 返回数组中所有的值。 提示: 被返回的数组将使用数值键,从 0 开始且以 1 递增。
2. array_keys() 返回数组中所有的键名。
3. in_array() 在数组中搜索给定的值 in_array(value,array,true) 检查搜索的数据与数组的值的类型是否相同。
4. array_key_exists 检查给定的键名或索引是否存在于数组中。
5. array_flip -- 交换数组中的键和值
6. array_reverse -- 返回一个单元顺序相反的数组
【统计数组元素的个数和惟一性】
1. count() sizeof();
2. array_count_values -- 统计数组中所有的值出现的次数
3. array_unique -- 移除数组中重复的值
【使用回调函数处理数组的函数】
1. array_filter() 用回调函数过滤数组中的单元
2. array_walk() 数组中的每个成员应用用户函数
3. array_map() 将回调函数作用到给定数组的单元上
◆ 实例演示: array_filter () ,取出数组中大于 0的数。
- <?php
- $arr=array(1,2,3,4,5,-6,7,7,8,8,-9,9,10,11,-12);
- $arr1=array_filter($arr, "myfun");
- function myfun($n){
- if($n>0)
- return true;
- else
- return false;
- }
- print_r($arr1);
- ?>
◆ 实例演示: array_walk()
- <?php
- $lamp=array("os"=>"linux", "wb"=>"apache", "db"=>"mysql", "la"=>"php");
- array_walk($lamp, "myfun1"); echo '<hr>';
- array_walk($lamp, "myfun2", "========");
- function myfun1($value, $key){
- echo "The key '{$key}' has '$value' <br>";
- }
- function myfun2($value, $key, $p){
- echo "The key '{$key}' has {$p} '$value' <br>";
- }
- ?>
◆ 实例演示: array_map() ,判断两个数组中的值是否相同。
- <?php
- $lamp=array("os"=>"linux", "wb"=>"apache", "db"=>"mysql", "la"=>"php");
- $lp=array("os"=>"window", "wb"=>"apache", "db"=>"oracle", "la"=>"php");
- $arr=array_map("myfun1", $lamp, $lp);
- function myfun1($n, $t){
- if($n==$t){
- return "same";
- }else{
- return "different";
- }
- }
- print_r($arr);
- ?>
◆ 实例演示: array_values ()。
- <?php
- $lamp=array("os"=>"linux", "webserver"=>"Apache", "db"=>"MySqL", "laguage"=>"php");
- $arr=array_values($lamp);
- print_r($arr);echo '<hr>';
- list($a,$b,$c,$d)=$arr;
- echo $a."<br>";
- echo $b."<br>";
- echo $c."<br>";
- echo $d."<br>";
- ?>
◆ 实例演示: array_keys ()。
- <?php
- $lamp= array("os"=>"linux", "webserver"=>"Apache", "db"=>"MySql", "laguage"=>100, "html"=>"100");
- $arr1=array_keys($lamp); print_r($arr1); echo '<hr>'; //取出所有的key
- $arr2=array_keys($lamp, "100"); print_r($arr2); echo '<hr>';//取出符合条件的key
- $arr3=array_keys($lamp, "100", true); print_r($arr3); //取出符合条件并且类型相同的 key
- ?>
◆ 关于 count() 函数,传递true 则计算所有子节点的个数:
- $lamp= array("os"=>"linux", "webserver"=>"Apache", "db"=>"MySql",array(1,2,3,4, array('A','B','C')));
- echo count($lamp, true); // 结果12
- echo count($lamp); // 结果4
【数组的排序函数】
1. 简单的数组排序 sort() rsort()
2. 根据键名对数组排序 ksort() krsort()
3. 根据元素的值对数组排序 asort() arsort()
4. 根据“自然数排序”法对数组排序 natsort() natcasesort() 用“ 自然排序”算法对数组进行(不区分大小写字母的)排序。
5. 根据用户自定义规则对数组排序 usort() uasort() uksort()
6. 多维数组的排序 array_multisort (较复杂,详见手册)
【拆分、合并、分解、接合的数组函数】
1. array_slice(array,offset,length,preserve) 在数组中根据条件取出一段值,并返回。 preserve可选。可能的值: true - 保留键; false - 默认 - 重置键
2. array_splice()
3. array_combine(); 通过合并两个数组来创建一个新数组。
4. array_merge(); 把一个或多个数组合并为一个数组。
5. array_intersect(array1,array2,[array3...]); 计算数组的交集。
6. array_diff()
【数组与数据结构的函数】
1. 使用数据实现堆栈
array_push(array); 将一个或多个单元(元素)压入数组的末尾(入栈)。
array_pop(array); 将数组最后一个单元弹出(出栈)。
2. 使用队列
array_unshift() 在数组开头插入一个或多个元素。
array_shift() 删除数组中的第一个元素,并返回被删除元素的值。
unset()
【其它与数据操作有关的函数】
array_rand(array,number) 从数组中随机选出一个或多个元素,并返回。 number 可选。默认是 1。规定返回多少个随机的元素。
shuffle()
array_sum()
range(first,second,step) 建立一个包含指定范围的元素的数组。
PHP常用的数组相关处理函数的更多相关文章
- PHP基础-常用的数组相关处理函数
一 数组键/值操作有关的函数 1. array_values()//获取数组中所有的值 $lamp=array("os"=>"linux", " ...
- PHP基础系列(二) PHP数组相关的函数分类整理
之前写过一篇介绍 PHP字符串函数 的博文,这里写第二篇,本文主要介绍PHP 数组相关的函数: 一.检查数组中是否存在 array_key_exists — 检查给定的键名或索引是否存在于数组中 ar ...
- 【php】php数组相关操作函数片段
下面这些都是我在工作中用到的函数,现在整理下. 判断是否是一个数组 function _is_array($value){ if (is_array($value)) { return true; } ...
- 最常用的~正则表达式-相关js函数知识简洁分享【新手推荐】
一.正则表达式的创建 JS正则的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 varregObj =newRegExp("(^\s+)|(\s+ ...
- php 数组相关的函数?
array()----创建数组array_combine()----通过合并两个数组来创建一个新数组range()----创建并返回一个包含指定范围的元素的数组compact()----建立一个数组a ...
- matlab 常用集合相关的函数
Matlab常用的集合相关的函数如下: union(A,B) %求集合A和集合B的并集 intersect(A,B) %求集合A和集合 ...
- php array数组的相关处理函数and str字符串处理与正则表达式
下面给各位同学整理了一些关于php array数组的相关处理函数and str字符串处理与正则表达式,希望文章对你会有所帮助. 数组的相关处理函数: 1)数组的键值操作函数 array_value ...
- c/c++ 图相关的函数(二维数组法)
c/c++ 图相关的函数(二维数组法) 遍历图 插入顶点 添加顶点间的线 删除顶点 删除顶点间的线 摧毁图 取得与v顶点有连线的第一个顶点 取得与v1顶点,v1顶点之后的v2顶点的之后的有连线的第一个 ...
- php常用字符串数组函数
Php常用的数组函数 键值操作 Array_values($arr) 获取数据的值 Array_keys($arr) 获取数组的key Array_flip($arr) 数组键值反转 In_array ...
随机推荐
- android UI进阶之用ViewPager实现欢迎引导页面
ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示. ...
- JSON Web Token
What is JSON Web Token? JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact a ...
- mysql慢查日志分析工具 percona-toolkit
备忘自: http://blog.csdn.net/seteor/article/details/24017913 1. 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具, ...
- pptp建立vpn
1. 安装依赖 ppp yum -y install ppp 2. 编译安装pptpd wget http://jaist.dl.sourceforge.net/project/poptop/pptp ...
- LIS 最长递增子序列
一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...
- Codeforce Round #226 Div2
这次CF虽然,但是- - 第一题看了很久的题目意思额,虽然慢了点- -,但还算没出错,还学会了hack了- -,还+了100- - 第二题想了很久- -...后来发现可以暴力- -,哎 第三题本来也应 ...
- Linux Ubuntu常用终端命令
查看cpu温度: 安装命令如下:sudo apt-get install acpi 然后acpi -t 即可 输入法配置窗口命令: fcitx-config-gtk3 im-config 任务管理器命 ...
- [转]java工程师成神之路
转载http://www.hollischuang.com/archives/489https://linux.cn/article-6739-1.html 一.基础篇 1.1 JVM 1.1.1. ...
- Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)
一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ...
- 夺命雷公狗---DEDECMS----14dedecms首页导航条的完成
我们的首页完成了,那么下一步就开始创建一个模型了, 添加好电影模型后我们来给他添加一些字段,这些字段主要还是要看我们的项目需求来添加的,因为我们的项目里有: 我们在项目中要用得上这些字段,所以要对他们 ...