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. ...
随机推荐
- STL 小白学习(8) set 二叉树
#include <iostream> using namespace std; #include <set> void printSet(set<int> s) ...
- 小谈对Python的认知与期望
18级新生,在大学之前并未接触过程序语言编程,在众多语言编程中只对C语言有个名字上认知.在上个学期初次了解到Python语言,计算机老师表示Python是现在编程语言中如雨后春笋般的发展飞速的计算机语 ...
- bzoj1668
题解: 简单dp 注意最后往后面多取几个 求个最小值 代码: #include<bits/stdc++.h> using namespace std; ; int n,m,f[N],a[N ...
- easyui combobox模糊搜索
combobox实现模糊搜索功能 <input class="easyui-combobox" id="hybq_PADD" name="hyb ...
- R语言RODBC数据库操作
最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R ...
- python中的unique()
a = np.unique(A) 对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表 import numpy as np A = [1, ...
- Collections集合工具类
一.Collection与Collections Collection 是所有单列集合的根接口 Collection 是操作集合的工具类 二.Collections中常见的方法:(大都是static方 ...
- Linux内核数据结构之kfifo详解
本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First ...
- eclipse 中修改项目名称,启动tomct原项目找不到的问题
eclipse 中修改项目名称,启动tomct原项目找不到的问题 1 在开发和练习中,经常会导入其他开源项目,修改项目名称,部署到tomcat 后,然后访问项目会找不到项目,可能是新项目名称和配置文件 ...
- chrome恢复默认搜索引擎为Google
管理员身份运行cmd RD /S /Q "%WinDir%\System32\GroupPolicyUsers" RD /S /Q "%WinDir%\System32\ ...