PHP常用函数(一):数组常用函数
1、list()
list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值。
PHP手册中的介绍
使用详情
- <?php
- //假设现在想为$a $b $c三个变量赋值,采用info数组中的内容
- $info = ['this is a','this is b','this is c'];
- list($a,$b,$c) = $info;
- print<<<EOT
- $a
- <br>
- $b
- <br>
- $c
- <br>
- EOT;
运行结果
2、each()
- //实例代码 遍历$arr
- <?php
- $arr = ['a'=>'this is a','b'=>'this is b','c'=>'this is c'];
- while($tmp = each($arr))
- {
- echo $tmp['key'].':'.$tmp['value'].'<br>';
- }
运行结果:
3、数组指针操作
- current()
- key()
- next()
- prev()
- end()
- reset()
- <?php
- /*
- 1 current(); //读取指针位置的内容
- 2 key(); //读取当前指针指向内容的索引值
- 3 next(); //将数组中的内部指针指向下一单元
- 4 prev(); //将数组内部指针倒回一位
- 5 end(); //将数组内部指针指向最后一个元素
- 6 reset(); //将目前指针指向第一个索引位置
- */
- $info = [
- 'a' => 'this is a',
- 'b' => 'this is b',
- 'c' => 'this is c',
- 'd' => 'this is d'
- ];
- echo key($info).':'.current($info).'<br>';
- next($info);
- echo key($info).':'.current($info).'<br>';
- end($info);
- echo key($info).':'.current($info).'<br>';
- reset($info);
- echo key($info).':'.current($info).'<br>';
运行结果:
4、键值操作函数
- array_values($arr) - 获得数组的值
- array_keys($arr[,$search[,$strict]])- 获得数组的键名
- array_flip($arr) - 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
- array_search($goal,$arr[,$strict])- 检索给定的值,加true则是严格类型检查
- array_reverse($arr[,$preserve_keys]) - 将数组中的元素翻转(前后顺序)
- in_array($goal,$arr[,$strict]) - 判断值是否在数组中
- array_key_exists($key,$arr) - 检索给定的键名是否存在数组中
- array_count_values($arr) - 统计数组中所有值出现的次数
- array_unique($arr[,$sort_flags]) - 删除数组中重复的值
- <?php
- $info = [
- 'a' => 'apple',
- 'b' => 'blog',
- 'c' => 'cat',
- 'd' => 'dog'
- ];
- echo 'keys:<br>';
- //输出info数组的所有键
- var_dump(array_keys($info));
- echo '<br>';
- echo 'values:<br>';
- //输出info数组的所有值
- var_dump(array_values($info));
- echo '<br>';
- //转换info数组 键值互换
- echo 'flips:<br>';
- var_dump(array_flip($info));
- echo '<br>';
- //搜索apple
- echo 'search:<br>';
- echo 'apple key is :'.array_search('apple',$info);
- echo '<br>';
- //元素翻转
- echo 'reverse:<br>';
- var_dump(array_reverse($info));
- echo '<br>';
- //检查元素
- echo 'in?<br>';
- echo 'blog is in $info? '.var_dump(in_array('blog',$info));
- echo '<br>';
- //检查键
- echo 'key in?<br>';
- echo 'b is in $info? '.var_dump(array_key_exists('b',$info));
- echo '<br>';
- //统计值的出现次数
- $info[] = 'blog';
- $info[] = 'blog';
- echo 'value count<br>';
- var_dump(array_count_values($info));
- echo '<br>';
- //删除重复的值
- echo 'before unique<br>';
- var_dump($info);
- echo '<br>after unique<br>';
- var_dump(array_unique($info));
运行结果:
5、回调函数
- array_filter($arr[,$callback[,$flag]]) //使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中
- array_walk($arr,$callback[,$userdata]) //回调函数处理数组,自定义函数要有两个参数,本函数第三个参数可以作为回调第三个参数返回
- array_map($callback,$arr1[,$arr....]) //可以处理多个数组,每个数组的长度应该相同,传入数组的个数和回调函数参数个数应该一致
示例数组:
- $info = [
- 'a' => 'apple',
- 'b' => 'blog',
- 'c' => 'cat',
- 'd' => 'dog'
- ];
array_filter();
PHP手册参考:
- //array_filter();
- //不使用flag
- $filter_arr = array_filter($info,function($value){
- return strlen($value) == 3;
- });
- var_dump($filter_arr);
- echo '<br>';
- //使用flag
- $filter_arr = array_filter($info,function($key){
- return in_array($key,['a','c']);
- },ARRAY_FILTER_USE_KEY);
- var_dump($filter_arr);
- echo '<br>';
- $filter_arr = array_filter($info,function($value,$key){
- return in_array($key,['a','c']) && $value == 'apple';
- },ARRAY_FILTER_USE_BOTH);
- var_dump($filter_arr);
- echo '<br>';
输出结果:
array_walk();
PHP手册参考:
- //array_walk();
- //不使用 userdata
- array_walk($info,function($value,$key){
- echo "$key:$value ";
- });
- echo "<br>";
- //使用 userdata
- array_walk($info,function(&$value,$key,$userdata){
- $value = $userdata.'-'.$value;
- },'php');
- var_dump($info);
- echo "<br>";
输出结果:
array_map();
PHP手册参考:
- //array_map();
- //单个数组
- array_map(function($n){
- echo "$n ";
- },$info);
- echo "<br>";
- //多个数组
- $info_2 = [
- 'e' => 'egg',
- 'f' => 'filco',
- 'g' => 'good'
- ];
- array_map(function($n1,$n2){
- echo "1:$n1-2:$n2 ";
- },$info,$info_2);
- echo '<br>';
运行结果:
6、数组分割
- array_slice($arr,$offset[,$length[,preserve_keys]]) //将数组中的一段取出(数组的分段)
- array_splice($arr,$offset[,$length[,$replacement]]) //将数组中的一段取出,返回的序列从原数组中删除
- array_chunk($arr,$size[,$preserve_keys]) //将一个数组分割成多个
array_slice()
PHP手册参考
array_splice()
PHP手册参考:
array_chunk()
PHP手册:
测试代码:
- <?php
- $info = [
- 'a' => 'apple',
- 'b' => 'blog',
- 'c' => 'cat',
- 'd' => 'dog'
- ];
- //array_slice()
- echo 'array_slice:<br>';
- print_r(array_slice($info,0,3));
- echo '<br><hr>';
- //array_splice();
- echo 'array_splice:<br>';
- echo '原数组:<br>';
- print_r($info);
- echo '<br>';
- //替换掉前两位
- $tmp = array_splice($info,0,2,['king','queen']);
- echo '替换后的数组:<br>';
- print_r($info);
- echo '<br>';
- echo '替换掉数组:<br>';
- print_r($tmp);
- echo '<br><hr>';
- //恢复原数组
- $info = [
- 'a' => 'apple',
- 'b' => 'blog',
- 'c' => 'cat',
- 'd' => 'dog'
- ];
- //array_chunk();
- echo 'array_splice:<br>';
- echo '替换后的数组:<br>';
- $tmp = array_chunk($info,2);
- var_dump($tmp);
运行结果:
7、数组运算
- array_sum($arr) 元素求和
- array_merge($arr1[,$arr...]) 数组合并
- array_diff($arr1,$arr2[,$arr....]) 数组求差集 - 在arr1中但不在其他数组中的值
- array_intersect($arr1,$arr2[,$arr...]) 数组求并集 - 在arr1中且在其他数组中的值
测试代码:
- <?php
- $info = [
- 'a' => 'apple',
- 'b' => 'blog',
- 'c' => 'cat',
- 'd' => 'dog'
- ];
- $info_2 = [
- 'e' => 'apple',
- 'f' => 'egg',
- 'g' => 'java',
- 'h' => 'cat'
- ];
- $info_num = [120,10,1];
- //array_sum
- echo 'array_sum:<br>';
- echo array_sum($info_num);
- echo '<br>';
- echo array_sum($info); //只对元素中的数值进行求和
- echo '<br><hr>';
- //array_merge
- echo 'array_merge:<br>';
- print_r(array_merge($info,$info_2,$info_num));
- echo '<br><hr>';
- //array_diff - 返回在info中但不在其他arr中的值
- echo 'array_diff:<br>';
- print_r(array_diff($info,$info_2));
- echo '<br><hr>';
- //array_intersect - 返回在info中也在在其他arr中的值
- echo 'array_intersect:<br>';
- print_r(array_intersect($info,$info_2));
- echo '<br><hr>';
运行结果:
8、数组的栈和队列操作
- array_push($arr,$value[,$...]) - 将一个或多个单元压入数组的末尾(入栈)
- array_pop($arr) - 弹出数组最后一个单元(出栈)
- array_shift($arr) - 将数组开头的单元移出数组
- array_unshift($arr,$value[,$...]) - 在数组开头插入一个或多个单元
9、数组的排序操作
- sort($arr[,$sort_flag]) - 从小到大,忽略键名
- rsort($arr[,$sort_flag]) - 从大到小,忽略键名
- asort($arr[,$sort_flag]) - 从小到大,保留键名
- arsort($arr[,$sort_flag]) - 从大到小,保留键名
- ksort($arr[,$sort_flag]) - 按键名正序排列
- krsort($arr[,$sort_flag]) - 按键名倒序排列
10、其他常用函数
- shuffle($arr) - 打乱数组
PHP常用函数(一):数组常用函数的更多相关文章
- PHP中的数组(二)常用数组处理函数
数组的相关处理函数 一.数组键/值操作有关的函数 1.array_values() 无论是关联的还是索引的返回的都是索引数组 <?php $lamp=array(&quo ...
- PHP数组处理函数的使用array_map(三)
/*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...
- C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
#include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...
- JavaSE语法基础(3)---函数、数组
JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...
- php数组键值操作和数组统计函数-函数
1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)
昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...
随机推荐
- 关于sqlserver数据库max()方法的使用
1.传送门:http://www.codesky.net/article/201009/144935.html 2.copy自传送门里的内容: max(字符串内容): 说明对字符型数据的最大值,是按照 ...
- Rhino学习教程——1.2
实战——创建个性化工具栏: 因为我们的制图习惯不同,所以可以吧自己常用的工具放在一起.我上次说的自定义界面就是这个和调整工具栏位置. 1.打开常用>设置 2.选择工具列>编辑>新增工 ...
- python学习------面向对象进阶
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...
- 'weinre' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 解决方案
使用 npm install -g weinre 全局安装 weinre,weinre 安装目录是:C:\Users\Administrator\AppData\Roaming\npm 需要配置环境变 ...
- grep用法
正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大:在以前上班 ...
- 用反射的形式将一个对象属性值赋值给另一个对象,省略点get/set方法的冗余代码
1.本例使用的是idea 首先需要在idea中安装lombok插件,省略getter和setter方法的书写 在maven项目中加入lombok依赖 <dependency> <gr ...
- MarkdownPan2 简单使用指南
markdown 简单使用指南 一级标题 二级标题 三级标题加代码 四级标题 这里是加粗 这里是正文and English 888 这里有正文嵌入代码这种样式 这里是代码块 这种使用的代码块 还有引用 ...
- VMware 物理机可以复制文件到虚拟机,却无法从虚拟机复制文件到物理机(已解决)
物理机运行,输入gpedit.msc确定,把如图的那个改成“已禁用” 之后虚拟机重新安装VMware Tool重启即可 事情是这样的,每次打开IDM会 “警告:您在以管理员身份运行IDM,在该模式下, ...
- [py]Win10下的pip/pip3 install 导致utf-8编码问题的解决方案
置顶感谢:http://blog.csdn.net/qq_33530388/article/details/68933201 今天安装时遇到了windows下棘手的问题 UnicodeDecodeEr ...
- shell中特殊位置参数变量
shell中特殊位置参数变量:$0.$n.$#.$*.$@ $0:获取当前执行shell脚本文件名,如果执行脚本包含路径,那么就包括脚本路径 $n:获取当前执行shell脚本的第n个参数值.n=1.. ...