PHP常见数组方法和函数
current();当前游标指向的数组单元值
next();下一个数组单元值
end()最后一个
reset()复位
prev()把数组指针往前一位
写法:$arr=array('a','b','c','d');
next($arr);
echo current($arr);
isset当值是null时false
isset判断一个变量是否存在
array_key_exists('角标,数组名') 函数检查某个数组中是否存在指定的键名
in_array('值',数组名);判断值是否存在
1、array_change_key_case():把数组中所有键更改为小写或大写。
array_change_key_case(array,case);
| 参数 | 描述 |
|---|---|
| array | 必需。规定要使用的数组。 |
| case |
可选。可能的值:
|
2、array_chunk():把一个数组分割为新的数组块。
array_chunk(array,size,preserve_key);
| 参数 | 描述 |
|---|---|
| array | 必需。规定要使用的数组。 |
| size | 必需。整数值,规定每个新数组包含多少个元素。 |
| preserve_key |
可选。可能的值:
|
3、array_column(): 返回输入数组中某个单一列的值。
array_column(array,column_key,index_key);
| 参数 | 描述 |
|---|---|
| array | 必需。规定要使用的多维数组(记录集)。 |
| column_key |
必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。 |
| index_key | 可选。用作返回数组的索引/键的列。 |
4、array_combine():通过合并两个数组(键名、键值合并成一个)来创建一个新数组。 (注释:两个参数必须有相同数目的元素。一组为键值,另一组为键名。)
array_combine(keys,values);
| 参数 | 描述 |
|---|---|
| keys | 必需。键名数组。 |
| values | 必需。键值数组。 |
5、array_count_values(): 统计数组中所有值出现的次数。
array_count_values(array)
| 参数 | 描述 |
|---|---|
| array | 必需。规定需要对值进行计数的数组。 |
| 返回值: | 返回关联数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。 |
6、array_diff():比较数组,返回差集(只比较键值)。
array_diff(array1,array2,array3...);
| 参数 | 描述 |
|---|---|
| array1 | 必需。与其他数组进行比较的第一个数组。 |
| array2 | 必需。与第一个数组进行比较的数组。 |
| array3,... | 可选。与第一个数组进行比较的其他数组。 |
| 返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或 array3 等等)中的键值。 |
array_diff_assoc():比较数组,返回差集(比较键名和键值)。
array_diff_key():比较数组,返回差集(只比较键名)。
array_diff_uassoc():比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)
array_diff_uassoc(array1,array2,array3...,myfunction);
| 参数 | 描述 |
|---|---|
| array1 | 必需。与其他数组进行比较的第一个数组。 |
| array2 | 必需。与第一个数组进行比较的数组。 |
| array3,... | 可选。与第一个数组进行比较的其他数组。 |
| myfunction | 必需。定义可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。 |
例:
<?php
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
} $a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);
?>
7、array_filter():用回调函数过滤数组中的元素。
array_filter(array,callbackfunction);
| 参数 | 描述 |
|---|---|
| array | 必需。规定要过滤的数组。 |
| callbackfunction | 必需。规定要使用的回调函数。 |
| 返回值: | 返回过滤的数组。 |
<?php
function test_odd($var)
{
return($var & 1);
} $a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>
8、array_flip():交换数组中的键和值。
array_flip(array);
| 返回值: | 如果反转成功,则返回反转后的数组。如果失败,则返回 NULL。 |
9、array_intersect():比较数组,返回交集(只比较键值)。
array_intersect(array1,array2,array3...);
| 参数 | 描述 |
|---|---|
| array1 | 必需。与其他数组进行比较的第一个数组。 |
| array2 | 必需。与第一个数组进行比较的数组。 |
| array3,... | 可选。与第一个数组进行比较的其他数组。 |
| 返回值: | 返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。 |
array_intersect_assoc():比较数组,返回交集(比较键名和键值)。
array_intersect_key():比较数组,返回交集(只比较键名)。
array_intersect_uassoc():比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。
array_intersect_uassoc(array1,array2,array3...,myfunction)
| 参数 | 描述 |
|---|---|
| array1 | 必需。与其他数组进行比较的第一个数组。 |
| array2 | 必需。与第一个数组进行比较的数组。 |
| array3,... | 可选。与第一个数组进行比较的其他数组。 |
| myfunction | 必需。定义可调用比较函数的字符串。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。 |
| 返回值: | 返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2或 array3 等等)中的键名和键值。 |
注意,与 array_intersect() 不同的是除了比较键值,还要比较键名。
此比较是通过用户提供的回调函数来进行的。该函数带有两个参数,即两个要进行对比的键名。如果第一个参数小于第二个参数,则函数要返回一个负数,如果两个参数相等,则要返回 0,如果第一个参数大于第二个参数,则返回一个正数。
10、array_key_exists():检查指定的键名是否存在于数组中。
array_key_exists(key,array)
| 参数 | 描述 |
|---|---|
| key | 必需。规定键名。 |
| array | 必需。规定数组。 |
| 返回值: | 如果键名存在则返回 TRUE,如果键名不存在则返回 FALSE。 |
11、array_keys():返回数组中所有的键名。
array_keys(array,value,strict)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| value | 可选。您可以指定键值,然后只有该键值对应的键名会被返回。 |
| strict |
可选。与 value 参数一起使用。可能的值:
|
| 返回值: | 返回包含数组中所有键名的一个新数组。 |
12、array_map():把数组中的每个值发送到用户自定义函数,返回新的值。
array_map(myfunction,array1,array2,array3...)
| 参数 | 描述 |
|---|---|
| myfunction | 必需。用户自定义函数的名称,或者是 null。 |
| array1 | 必需。规定数组。 |
| array2 | 可选。规定数组。 |
| array3 | 可选。规定数组。 |
| 返回值: | 返回包含 array1 的值的数组,在向每个值应用自定义函数后。 |
例:一个数组
<?php
function myfunction($v)
{
if ($v==="Dog")
{
return "Fido";
}
return $v;
} $a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
?>
例:两个数组
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return "same";
}
return "different";
} $a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2));
?>
13、array_merge():把一个或多个数组合并为一个数组。(非键名、键值合并)
array_merge(array1,array2,array3...)
| 参数 | 描述 |
|---|---|
| array1 | 必需。规定数组。 |
| array2 | 可选。规定数组。 |
| array3 | 可选。规定数组。 |
| 返回值: | 返回合并的数组。 |
14、array_multisort():对多个数组或多维数组进行排序。
array_multisort(array1,sorting order,sorting type,array2,array3...)
| 参数 | 描述 |
|---|---|
| array1 | 必需。规定数组。 |
| sorting order |
可选。规定排列顺序。可能的值:
|
| sorting type |
可选。规定排序类型。可能的值:
|
| array2 | 可选。规定数组。 |
| array3 | 可选。规定数组。 |
| 返回值: | 如果成功则返回 TRUE,如果失败则返回 FALSE。 |
15、array_pop():删除数组的最后一个元素(出栈)。
| 返回值: | 返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。 |
16、array_product():计算数组中所有值的乘积。
17、array_push():将一个或多个元素插入数组的末尾(入栈)。
| 返回值: | 返回新数组的元素个数。 |
18、array_rand():返回数组中一个或多个随机的键。
array_rand(array,number)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| number | 可选。规定返回多少随机键名。 |
| 返回值: | 返回数组中的一个随机键名,或者如果您规定函数不只一个返回键名,则返回包含随机键名的数组。 |
<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]."<br>";
echo $a[$random_keys[1]]."<br>";
echo $a[$random_keys[2]];
?>
19、array_reduce():通过使用用户自定义函数,以字符串返回数组。
array_reduce(array,myfunction,initial)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| myfunction | 必需。规定函数的名称。 |
| initial | 可选。规定发送到函数的初始值。 |
| 返回值: | 返回结果值。 |
例:
<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction"));
?>
结果为:-Dog-Cat-Horse
<?php
function myfunction($v1,$v2)
{
return $v1+$v2;
}
$a=array(10,15,20);
print_r(array_reduce($a,"myfunction",5));
?>
结果为:50
18、array_replace():使用后面数组的值替换第一个数组的值。
array_replace(array1,array2,array3...)
| 参数 | 描述 |
|---|---|
| array1 | 必需。规定数组。 |
| array2 | 可选。指定要替换 array1 的值的数组。 |
| array3,... | 可选。指定多个要替换 array1 和 array2, ... 的值的数组。后面数组的值将覆盖之前数组的值。 |
| 返回值: | 返回被替换的数组,如果发生错误则返回 NULL。 |
提示:您可以向函数传递一个数组,或者多个数组。
如果一个键存在于第一个数组 array1 同时也存在于第二个数组 array2,第一个数组 array1 中的值将被第二个数组 array2 中的值替换。如果一个键仅存在于第一个数组 array1,它将保持不变。
如果一个键存在于第二个数组 array2,但是不存在于第一个数组 array1,则会在第一个数组 array1 中创建这个元素。(详见下面的实例 2)
如果传递了多个替换数组,它们将被按顺序依次处理,后面数组的值将覆盖之前数组的值。
19、array_reverse():以相反的顺序返回数组。
20、array_search():搜索数组中给定的值并返回键名。
array_search(value,array,strict)
| 参数 | 描述 |
|---|---|
| value | 必需。规定需要搜素的键值。 |
| array | 必需。规定被搜索的数组。 |
| strict |
可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:
如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。 |
| 返回值: |
如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。 如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。 |
21、array_shift():删除数组中首个元素,并返回被删除元素的值。
22、array_sum():返回数组中值的和。
23、array_splice():删除并替换数组中指定的元素。
array_splice(array,start,length,array)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| start |
必需。数值。规定删除元素的开始位置。
|
| length |
可选。数值。规定被移除的元素个数,也是被返回数组的长度。
|
| array |
可选。规定带有要插入原始数组中元素的数组。 如果只有一个元素,则可以设置为字符串,不需要设置为数组。 |
| 返回值: | 返回由被提取元素组成的数组。 |
24、array_slice():返回数组中被选定的部分。
array_slice(array,start,length,preserve)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| start |
必需。数值。规定取出元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从前往后开始取。 如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。 |
| length |
可选。数值。规定被返回数组的长度。 如果该值设置为整数,则返回该数量的元素。 如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。 如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。 |
| preserve |
可选。规定函数是保留键名还是重置键名。可能的值:
|
| 返回值: | 返回数组中的选定部分。 |
25、array_unique():删除数组中的重复值。
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
返回的数组中键名不变。
被保留的数组将保持第一个数组项的键名类型。
26、array_unshift():在数组开头插入一个或多个元素。
array_unshift(array,value1,value2,value3...)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| value1 | 必需。规定要插入的值。 |
| value2 | 可选。规定要插入的值。 |
| value3 | 可选。规定要插入的值。 |
| 返回值: | 返回数组中新的元素数目。 |
数值键名将从 0 开始,以 1 递增。字符串键名将保持不变。
27、array_values():返回数组中所有的值。
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。
28、array_walk():对数组中的每个成员应用用户函数。
array_walk(array,myfunction,userdata...)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组。 |
| myfunction | 必需。用户自定义函数的名称。 |
| userdata,... | 可选。规定用户自定义函数的参数。您能够向此函数传递任意多参数。 |
| 返回值: | 如果成功则返回 TRUE,否则返回 FALSE。 |
array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
注释:您可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值
<?php
function myfunction($value,$key)
{
echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
?>
29、compact():创建包含变量名和它们的值的数组。
compact(var1,var2...)
| 参数 | 描述 |
|---|---|
| var1 | 必需。可以是带有变量名的字符串,或者是变量数组。 |
| var2,... | 可选。可以是带有变量名的字符串,或者是变量数组。允许多个参数。 |
| 返回值: | 返回带有所有变量名和它们的值的数组。 |
<?php
$firstname = "Bill";
$lastname = "Gates";
$age = "60"; $name = array("firstname", "lastname");
$result =compact($name, "location", "age"); print_r($result);
?>
30、list():把数组中的值赋给一些变量。
list(var1,var2...)
| 参数 | 描述 |
|---|---|
| var1 | 必需。第一个需要赋值的变量。 |
| var2,... | 可选。更多需要赋值的变量。 |
| 返回值: | 返回被赋值的数组。 |
<?php
$my_array = array("Dog","Cat","Horse");list($a, $b, $c)= $my_array;
echo "I have several animals, a $a, a $b and a $c.";
?>
31、extract():从数组中将变量导入到当前的符号表。
extract(array,extract_rules,prefix)
| 参数 | 描述 |
|---|---|
| array | 必需。规定要使用的数组。 |
| extract_rules |
可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。 可能的值:
|
| prefix |
可选。请注意 prefix 仅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。 前缀和数组键名之间会自动加上一个下划线。 |
<?php
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
32、range():创建包含指定范围单元的数组。
range(low,high,step)
| 参数 | 描述 |
|---|---|
| low | 必需。规定数组的最低值。 |
| high | 必需。规定数组的最高值。 |
| step | 可选。规定元素之间的步进制。默认是 1。 |
| 返回值: | 返回包含从 low 到 high 的元素的数组。 |
<?php
$number =range(0,50,10);
print_r ($number);
?>
33、shuffle():将数组打乱。
34、sort():对数组排序。(升)
35、rsort():对数组逆向排序。
36、sizeof():count() 的别名
PHP常见数组方法和函数的更多相关文章
- JavaScript的作用;JS常见的三种对话框;==和===的区别;函数内部参数数组arguments在函数内部打印实参;JS的误区:没有块级作用域
JS:客户端(浏览器)脚本语言 弱类型 基于原型 事件驱动 不需要编译(直接运行) JS的作用:表单验证,减轻服务端的压力 添加页面动画效果 动态更改页面内容 Ajax网络请求 (一)常见的对 ...
- javascript常见的数组方法
1:Array对象用于在单个变量中存储多个值typeof(arrArr) 'object'var arr1 = [];//创建一个空数组eg:数组是个引用类型var a = [1,2,3];var b ...
- ES5新增数组方法测试和字符串常见API测试
首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
- PHP常用函数、数组方法
常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...
- js之数组常见的方法
主要介绍数组的一些常用的方法,方法多了,就容易混淆,结果就是方法用错,甚至不会用: 一.数组的定义: 1.字面量/直接量: var arr = [1, 2, 'js', 'java']; 2.通过内部 ...
- for循环的运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 与 自己创建函数取值 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根
今天学习的是for循环,对for循环的运算有了理解. document.write(" ")里的内容在网页上展示出来 有名函数非常重要!!!!!!!!!!!!!!!!!!!!!并且 ...
- 比较C#中几种常见的复制字节数组方法的效率
在日常编程过程中,我们可能经常需要Copy各种数组,一般来说有以下几种常见的方法:Array.Copy,IList<T>.Copy,BinaryReader.ReadBytes,Buffe ...
- 学JS的心路历程 -数组常见处理方法
昨天我们有提到说for-of和forEach可以用来处理数组,但其实还有很多方法可以更快速及精简代码的达到你要的效果. 话不多说,我们赶紧来看吧! Array.prototype.map() 会回传一 ...
- JavaScript回调函数及数组方法测试
JavaScript回调函数及数组方法测试 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> &l ...
随机推荐
- 项目Beta冲刺(团队)第七天
1.昨天的困难 服务器部署出了问题,本地服务器差点崩掉 运行一直闪退,在查找哪里出现问题的路上一去不复返 2.今天解决的进度 成员 进度 陈家权 消息功能模块 赖晓连 问答功能模块 雷晶 部署服务器到 ...
- Hibernate left join
6.4.5 左外连接 左外连接(Left Outer Join)查询出左表对应的复合条件的所有记录,如查询李晓梅同学的选课信息.下面是类HQLLeftOuterJoinQuery的源代码. 其实关联 ...
- HDU 2262 Where is the canteen 期望dp+高斯消元
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...
- Android开发--第一个活动
一.创建工程 1 项目名:MyActivity 包名:com.iflytek.myactivity 2 为了便于学习,不勾选Create Activity.然后finish,工程创建完成 END ...
- iOS开发面试题(中级)
//想面试的童鞋们来看看自己会多少, 老鸟可以无视直接绕过...1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?与Ex ...
- Windows下 OpenSSL的安装与简单使用
1. openssl的最新版本 最新版本是 openssl1.1.1 官方地址 https://www.openssl.org/source/ TLS1.3的协议(RFC8446)在2018.8.12 ...
- 2013南京网赛1003 hdu 4750 Count The Pairs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4750 题意:给出一个无向图,f(a,b)表示从点a到点b的所有路径中的每条路径的最长边中的最小值,给出 ...
- rhel和centos7下更改网卡名称ens33为eth0
Linux使用小Tips 整理些Linux些常遇到的问题. 修改网卡ens33为eth0 在使用RHEL和Centos7,发现网卡名称变成了EnoX,挺不习惯.现更改回旧名称eth0看着顺眼. 备份/ ...
- 在输入密码框中眼睛睁开可以看见数字,眼睛闭上看不见数字怎么用JS实现
无论做那个项目,登录注册页面总是避免不了的,那怎么用js来控制密码的显示和隐藏呢?先看一下效果图: HTML代码如下: <div> <label for=" ...
- UVAlive6439_Pasti Pas!
题目是说给你一个字符串,现在要你用一些特殊的符号代替这个字符串中某一些子串,使得被替换后的串是一个回文串. 现在要你求替换后的字符串的最大的可能的长度. 其实这个题目没有什么固定的算法哦,我直接暴力就 ...