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. ...
随机推荐
- 网络通信协议,TCP和UDP 的区别
1.网络通信 互联网本质就是一系列的网络通信,互联网协议的功能是定义计算机如何介入internet,以及介入internet的计算机通信的标准.互联网协议按照功能不同分为osi7层或tcp/ip五 ...
- 像调试java一样来调试Redis lua
高并发的系统中,redis的使用是非常频繁的,而lua脚本则更是锦上添花.因为lua脚本本身执行的时候是一个事务性的操作,不会掺杂其他外部的命令,所以很多关键的系统节点都会用redis+lua来实现一 ...
- Delphi indy线程控件TIdThreadComponent的使用
当程序需要做耗时操作,例如访问数据库获取较多的数据.获取大文件MD5.网络访问数据量比较大.界面需要频繁刷新等等,都可以用线程来解决界面卡顿的问题,从而优化用户体验. 在知道TIdThreadComp ...
- 跟随我在oracle学习php(16)
数据库的增删改查 增:create database [if not exists ] 数据库名 [charset 字符集] [collate 字符排序规则]: 说明: 1,if n ...
- flask基础--第二篇
1.Flask中的HTTPResponse,Redirect, render #导入render_template和redirect from flask import Flask,render_te ...
- docfx chocolatey安装方法
这两天在git下载的docfx.zip .在安装过程中总是闪退,而加入环境变量后,执行提示:config file docfx.json does not exist.所以我选择chocolatey ...
- 20145338 《网络对抗》逆向及Bof基础实验
逆向及Bof基础实验 实践目标 ·本次实践的对象是一个名为pwn1的linux可执行文件. ·该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ·该程序同时包含 ...
- abstract、final和native几大注意点
变量不能被defalut修饰 native修饰方法,native修饰的方法简单来说就是:一个Java方法调用了一个非Java代码的接口.定义navtive方法时,并不提供实现体,因为其实现体是用非Ja ...
- 第十三周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 聚集索引 聚集索引指示表中数据的物理顺序 ...
- Python第四章(北理国家精品课 嵩天等)
一.程序的分支结构 二.身体质量指数BMI #CalBIv1.py height,weight = eval((input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))) ...