## php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
> 这篇文章主要介绍了php常用数组array函数,结合实例形式总结分析了php常用的数组操作函数,包括数组的赋值、拆分、合并、计算、添加、删除、查询、判断、排序等,需要的朋友可以参考下
[TOC]
本文实例总结了php常用数组array函数。分享给大家供大家参考,具体如下:
### array_combine
> 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值
案例:
~~~
<?php
$a = array("one","two","three");
$b = array("一","二","三");
$c = array_combine($a,$b);
print_r($c);
/**结果
*Array ( [one] => 一 [two] => 二 [three] => 三 )
*/
~~~
### array_chunk
> 功能:拆分数组成多个数组
~~~
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");
echo "<pre>";
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2,True));
echo "</pre>";
/**结果
Array
(
[0] => Array
(
[0] => apple
[1] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[a] => apple
[b] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[2] => e
)
)
*/
~~~
### array_count_values
> 功能:统计数组中值出现的次数
~~~
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");
echo "<pre>";
print_r(array_count_values($input_array));
echo "</pre>";
/**结果
Array
(
[apple] => 1
[blue] => 1
[c] => 1
[d] => 1
[e] => 1
)
*/
~~~
### array_diff
> 功能:第一个数组中去掉第二个数组中有的数据,返回剩下的内容作为结果
~~~
<?php
$array1 = array("a"=>"apple","b"=>"blue","c","d","e");
$array2 = array("apple","c","d","f");
$result = array_diff($array1, $array2);
$result2 = array_diff($array2, $array1);
echo "<pre>";
print_r($result);//数组1中去掉数组2中剩下的
print_r($result2);//数组2中去掉数组1中剩下的
echo "</pre>";
/**结果
Array
(
[b] => blue
[2] => e
)
Array
(
[3] => f
)
*/
~~~
### array_map
> 功能:将回调函数执行到数组中
~~~
<?php
//定义回调函数
function cube($n){
return ($n*$n*$n);
}
$a = array(1,2,3,4,5);
$b = array_map("cube",$a);
echo "<pre>";
print_r($b);
echo "</pre>";
/**结果
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
*/
~~~
### array_merge
> 功能:合并一个或多个数组
说明:如果后面有键名相同的会覆盖掉前面的内容,键名为数字的会添加到后面
~~~
<?php
$array1 = array("color"=>"red",2,4);
$array2 = array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result1 = array_merge($array1,$array2);
$result2 = array_merge_recursive($array1,$array2);
echo "<pre>";
print_r($result1);
print_r($result2);
echo "</pre>";
/**结果
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
Array
(
[color] => Array
(
[0] => red
[1] => green
)
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
*/
~~~
### array_pop
> 功能:剔除数组最后一个元素,返回被剔除的元素内容
~~~
<?php
$stack = array("orange","banana","apple","1");
$last = array_pop($stack);
echo "<pre>";
print_r($stack);
print_r($last);
echo "</pre>";
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
)
1
*/
~~~
### array_push
> 功能:将一个多个单元压入数组末尾,返回之后的数组个数
~~~
<?php
$stack = array("orange","banana");
$count = array_push($stack,"apple","red","blue");
echo "<pre>";
print_r($stack);
print_r($count);
echo "</pre>";
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => red
[4] => blue
)
5
*/
~~~
### array_rand
> 功能:获取随机的键名
~~~
<?php
$input = array("orange","banana","apple","red","blue");
$rand = array_rand($input,2);;
print_r($rand);
$rand = array_rand($input,3);
print_r($rand);
/**结果
Array
(
[0] => 1
[1] => 4
)
Array
(
[0] => 0
[1] => 1
[2] => 3
)
*/
~~~
### array_search
> 功能:查询数组中的内容,返回键值,如果有多个匹配,返回第一个匹配的内容
~~~
<?php
$array = array("blue"=>"b","red"=>"r","green","r");
$key = array_search('b', $array);
echo $key;
echo "<br>";
$key = array_search('r', $array);
echo $key;
echo "<br>";
/**结果
blue
red
*/
~~~
### array_shift
> 功能:移除开头的元素,与array_pop相反
~~~
<?php
$fruit = array("milk","orange","banana","apple");
$top = array_shift($fruit);
print_r($top);
echo "<br>";
print_r($fruit);
/**结果
milk
Array ( [0] => orange [1] => banana [2] => apple )
*/
~~~
### array_unique
> 功能:去除数组重复的元素,保留第一个出现的,包括键名和值
~~~
<?php
$input = array("a"=>"green","red","b"=>"green","blue","c"=>"red");
$result = array_unique($input);
print_r($result);
echo "<br>";
print_r($input);
/**结果
Array ( [a] => green [0] => red [1] => blue )
Array ( [a] => green [0] => red [b] => green [1] => blue [c] => red )
*/
~~~
### array_slice
> 功能:从数组中取出部分元素
~~~
<?php
$input = array("a","b","c","d","e");
$output = array_slice($input,2);//第二个参数没有时,表示取到最后一个元素
print_r($output);
echo "<br>";
$output = array_slice($input,-2,1);//第二个参数是正数时,表示个数;倒数第一个是-1,倒数第二个是-2
print_r($output);
echo "<br>";
$output = array_slice($input,0,3);
print_r($output);
echo "<br>";
$output = array_slice($input,2,-1);//第二个参数是负数时,表示位置,取到哪一位,不包括本身
print_r($output);
echo "<br>";
$output = array_slice($input,2,-1,true);//第三个参数为true时,保留原有的键值
print_r($output);
echo "<br>";
/**结果
Array ( [0] => c [1] => d [2] => e )
Array ( [0] => d )
Array ( [0] => a [1] => b [2] => c )
Array ( [0] => c [1] => d )
Array ( [2] => c [3] => d )
*/
~~~
### count
> 功能:返回数组元素个数,元素为数组的算一个
~~~
<?php
$input = array("a","b","c",array("d","e"));
$count = count($input);
echo $count;
echo "<br>";
$input = array("a","b","c","d","e");
$count = count($input);
echo $count;
/**结果
4
5
*/
~~~
### current
> 功能:获取当前的指针指向元素
~~~
<?php
$array = array("foot","bike","car","plane");
$result = current($array);
echo $result."<br>";
next($array);//使指针指向下一个元素
$result = current($array);
echo $result."<br>";
prev($array);//使指针指向前一个元素
$result = current($array);
echo $result."<br>";
end($array);//使指针指向最后一个元素
$result = current($array);
echo $result."<br>";
/**结果
foot
bike
foot
plane
*/
~~~
### in_array
> 功能:检验某值是否存在数组中,有返回True,没有返回False
~~~
<?php
$os_list = array("Mac","NT","Irix","Linux");
if(in_array("Irix",$os_list)){
echo "当前操作系统列表中存在Irix";
}else{
echo "当前操作系统列表中不存在Irix";
}
echo "<br>";
if(in_array("mac",$os_list)){
echo "当前操作系统列表中存在mac";
}else{
echo "当前操作系统列表中不存在mac";
}
echo "<br>";
/**结果
当前操作系统列表中存在Irix
当前操作系统列表中不存在mac
*/
~~~
### list
> 功能:将数组中的信息赋值给多个变量
~~~
<?php
$info = array("red","blue","green");
list($flag,$sky,$grassland) = $info;
echo "$flag,$sky,$grassland";
echo "<br>";
list($flag,,$grassland) = $info;
echo "$flag,$grassland";
echo "<br>";
list(,,$grassland) = $info;
echo "$grassland";
echo "<br>";
/**结果
red,blue,green
red,green
green
*/
~~~
### shuffle
> 功能:打乱数组
~~~
<?php
$numbers = range(1,5);//生成一个随机数组
print_r($numbers);
echo "<br/>";
shuffle($numbers);//打乱数组
print_r($numbers);
/**结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => 4 [1] => 1 [2] => 5 [3] => 2 [4] => 3 )
*/
~~~
### array_keys
> 功能:获取数组的键名,第二个参数可以指定获取某个元素
~~~
<?php
$array = array(0=>100,"color"=>"red");
print_r(array_keys($array));
echo "<br>";
$array = array("blue","red","green","blue","blue");
print_r(array_keys($array,"blue"));
echo "<br>";
$array = array("color"=>array("blue","red","green"),"size"=>array("small","medium","large"));
print_r(array_keys($array));
echo "<br>";
/**结果
Array ( [0] => 0 [1] => color )
Array ( [0] => 0 [1] => 3 [2] => 4 )
Array ( [0] => color [1] => size )
*/
~~~
### array_reverse
> 功能:获取数组的反向
~~~
<?php
$input = array("php",3.0,array("green","red"));
$result = array_reverse($input); //打乱键名
$result_keyed = array_reverse($input,TRUE);//保留键名
print_r($result);
print_r($result_keyed);
/**结果
Array
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 3
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)
[1] => 3
[0] => php
)
*/
~~~
### arsort
> 功能:逆向排序,索引不变
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或数字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**结果
b = orange
a = lemon
c = banana
d = apple
*/
~~~
### asort
> 功能:进行正向排序
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或数字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
echo "<p>";
asort($fruits);//按照字符正向排序或数字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**结果
b = orange
a = lemon
c = banana
d = apple
d = apple
c = banana
a = lemon
b = orange
*/
~~~
### krsort
> 功能:按照键名进行逆向排序
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
krsort($fruits);//按照键名逆向排序或数字
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**结果
d = apple
c = banana
b = orange
a = lemon
*/
~~~
### rsort
> 功能:按照值进行逆向排序,键名改变
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
rsort($fruits);//按照值进行逆向排序或数字,键名改变
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**结果
0 = orange
1 = lemon
2 = banana
3 = apple
*/
~~~
### sort
> 功能:按照值进行正向排序,键名改变
~~~
<?php
$fruits = array(
"a"=>"lemon",
"b"=>"orange",
"c"=>"banana",
"d"=>"apple",
);
sort($fruits);//按照值进行逆向排序或数字,键名改变
foreach($fruits as $key=>$val){
echo "$key = $val<br>";
}
/**结果
0 = apple
1 = banana
2 = lemon
3 = orange
*/
~~~
> 函数 描述
> array() 创建数组。
> array_change_key_case() 把数组中所有键更改为小写或大写。
> array_chunk() 把一个数组分割为新的数组块。
> array_column() 返回输入数组中某个单一列的值。
> array_combine() 通过合并两个数组来创建一个新数组。
> array_count_values() 用于统计数组中所有值出现的次数。
> array_diff() 比较数组,返回差集(只比较键值)。
> array_diff_assoc() 比较数组,返回差集(比较键名和键值)。
> array_diff_key() 比较数组,返回差集(只比较键名)。
> array_diff_uassoc() 比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。
> array_diff_ukey() 比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。
> array_fill() 用给定的键值填充数组。
> array_fill_keys() 用指定键名的给定键值填充数组。
> array_filter() 用回调函数过滤数组中的元素。
> array_flip() 交换数组中的键和值。
> array_intersect() 比较数组,返回交集(只比较键值)。
> array_intersect_assoc() 比较数组,返回交集(比较键名和键值)。
> array_intersect_key() 比较数组,返回交集(只比较键名)。
> array_intersect_uassoc() 比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。
> array_intersect_ukey() 比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。
> array_key_exists() 检查指定的键名是否存在于数组中。
> array_keys() 返回数组中所有的键名。
> array_map() 把数组中的每个值发送到用户自定义函数,返回新的值。
> array_merge() 把一个或多个数组合并为一个数组。
> array_merge_recursive() 递归地合并一个或多个数组。
> array_multisort() 对多个数组或多维数组进行排序。
> array_pad() 用值将数组填补到指定长度。
> array_pop() 删除数组的最后一个元素(出栈)。
> array_product() 计算数组中所有值的乘积。
> array_push() 将一个或多个元素插入数组的末尾(入栈)。
> array_rand() 返回数组中一个或多个随机的键。
> array_reduce() 通过使用用户自定义函数,以字符串返回数组。
> array_replace() 使用后面数组的值替换第一个数组的值。
> array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。
> array_reverse() 以相反的顺序返回数组。
> array_search() 搜索数组中给定的值并返回键名。
> array_shift() 删除数组中首个元素,并返回被删除元素的值。
> array_slice() 返回数组中被选定的部分。
> array_splice() 删除并替换数组中指定的元素。
> array_sum() 返回数组中值的和。
> array_udiff() 比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。
> array_udiff_assoc() 比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。
> array_udiff_uassoc() 比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。
> array_uintersect() 比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。
> array_uintersect_assoc() 比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。
> array_uintersect_uassoc() 比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。
> array_unique() 删除数组中的重复值。
> array_unshift() 在数组开头插入一个或多个元素。
> array_values() 返回数组中所有的值。
> array_walk() 对数组中的每个成员应用用户函数。
> array_walk_recursive() 对数组中的每个成员递归地应用用户函数。
> arsort() 对关联数组按照键值进行降序排序。
> asort() 对关联数组按照键值进行升序排序。
> compact() 创建包含变量名和它们的值的数组。
> count() 返回数组中元素的数目。
> current() 返回数组中的当前元素。
> each() 返回数组中当前的键/值对。
> end() 将数组的内部指针指向最后一个元素。
> extract() 从数组中将变量导入到当前的符号表。
> in_array() 检查数组中是否存在指定的值。
> key() 从关联数组中取得键名。
> krsort() 对数组按照键名逆向排序。
> ksort() 对数组按照键名排序。
> list() 把数组中的值赋给一些变量。
> natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。
> natsort() 用“自然排序”算法对数组排序。
> next() 将数组中的内部指针向前移动一位。
> pos() current() 的别名。
> prev() 将数组的内部指针倒回一位。
> range() 创建包含指定范围单元的数组。
> reset() 将数组的内部指针指向第一个元素。
> rsort() 对数组逆向排序。
> shuffle() 将数组打乱。
> sizeof() count() 的别名。
> sort() 对数组排序。
> uasort() 使用用户自定义的比较函数对数组中的键值进行排序。
> uksort() 使用用户自定义的比较函数对数组中的键名进行排序。
> usort() 使用用户自定义的比较函数对数组进行排序。
- 常用函数
- 简单的php生成静态html代码
- PHP写文件函数
- PHP生成GUID的函数
- PHP常用正则表达式汇总
- php字符串压缩
- PHP无限分组
- PHP简单 对象(object) 与 数组(array) 的转换
- PHP数组常用函数
- PHP调式测试函数
- PHP常用字符串的操作函数
- mysql 常用内置函数
- PHP通用请求函数CURL封装
- 裁剪图片PHP代码
- PDO操作MYSQL封装类
- 10个实用的PHP代码片段
- 获取访问者IP地址
- PHP实现发红包程序
- PHP把文本转换成图片
- curl重写php file_get_contents
- PHP生成一个随机字符串
- PHP读文件和写文件
- PHP根据key 给二维数组分组
- php中curl模拟post提交多维数组
- 33个超级有用必须要收藏的PHP代码样例
- PHP防XSS 防SQL注入的代码
- php常用数组array函数实例总结
- 用PHP遍历目录下的全部文件
- GBK2UTF8