php 数组的合并、拆分、区别取值函数集


Posted in PHP onFebruary 15, 2010

合并数组有三个函数:

1.array_combine()

携带两个参数数组,参数数组一的值作新数组的键,参数数组二的值作新数组的值。很简单。

例子:

<?php 
$a = array('green', 'red', 'yellow'); 
$b = array('avocado', 'apple', 'banana'); 
$c = array_combine($a, $b); print_r($c); 
?>

上例将输出:
Array 
( 
[green] => avocado 
[red] => apple 
[yellow] => banana 
)

2.array_merge()

携带两个参数数组,简单的将数组二追加到数组一的后面构成新数组。

例子:

<?php 
$array1 = array("color" => "red", 2, 4); 
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); 
$result = array_merge($array1, $array2); 
print_r($result); 
?>

上例将输出:
Array 
( 
[color] => green 
[0] => 2 
[1] => 4 
[2] => a 
[3] => b 
[shape] => trapezoid 
[4] => 4 
)

3.array_merge_recursive()

与上面函数雷同,唯一的区别是在追加时发现要添加的键已存在时,array_merge()的处理方式是覆盖前面的键值,array_merge_recursive()的处理方式是重构子数组,将重复的键的值组成一个新的数值数组。

例子:

<?php 
$ar1 = array("color" => array("favorite" => "red"), 5); 
$ar2 = array(10, "color" => array("favorite" => "green", "blue")); 
$result = array_merge_recursive($ar1, $ar2); 
?>

上例将输出 $result:
Array 
( 
[color] => Array 
( 
[favorite] => Array 
( 
[0] => red 
[1] => green 
) [0] => blue 
) 
[0] => 5 
[1] => 10 
)

拆分数组有两个函数:

1.array_slice()

携带三个参数,参数一为目标数组,参数二为offset,参数三为length。作用为,从目标数组中取出从offset开始长度为length的子数组。

如果offset为正数,则开始位置从数组开头查offset处,如果offset为负数开始位置从距数组末尾查offset处。如果length为正数,则毫无疑问取出的子数组元素个数为length,如果length为负数,则子数组从offset开始到距数组开头count(目标数组)-|length|处结束。特殊地,如果length为空,则结束位置在数组结尾。

例子:

<?php 
$input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // returns "c", "d", and "e" 
$output = array_slice($input, -2, 1); // returns "d" 
$output = array_slice($input, 0, 3); // returns "a", "b", and "c" 
// note the differences in the array keys 
print_r(array_slice($input, 2, -1)); 
print_r(array_slice($input, 2, -1, true)); 
?>

上例将输出:
Array 
( 
[0] => c 
[1] => d 
) 
Array 
( 
[2] => c 
[3] => d 
)

2.array_splice()

携带三个参数,同上,作用是删除从offset开始长度为length的子数组。

例子:

<?php 
$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 2); 
// $input is now array("red", "green") $input = array("red", "green", "blue", "yellow"); 
array_splice($input, 1, -1); 
// $input is now array("red", "yellow") 
$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 1, count($input), "orange"); 
// $input is now array("red", "orange") 
$input = array("red", "green", "blue", "yellow"); 
array_splice($input, -1, 1, array("black", "maroon")); 
// $input is now array("red", "green", 
// "blue", "black", "maroon") 
$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 3, 0, "purple"); 
// $input is now array("red", "green", 
// "blue", "purple", "yellow"); 
?>

区别取值函数有四个:

1.array_intersect()

携带参数不定,均为数组,返回所有数组中公共元素的值组成的数组,数组的键由所在第一个数组的键给出。

例子:

<?php 
$array1 = array("a" => "green", "red", "blue"); 
$array2 = array("b" => "green", "yellow", "red"); 
$result = array_intersect($array1, $array2); 
?>

上例将输出:
Array 
( 
[a] => green 
[0] => red 
)

2.array_intersect_assoc()

在前一个函数的基础上,返回所有数组中键、值均相同的键值对。

例子:

<?php 
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); 
$array2 = array("a" => "green", "yellow", "red"); 
$result_array = array_intersect_assoc($array1, $array2); 
?>

上例将输出:
Array 
( 
[a] => green 
)

3.array_diff()

携带多个数组,返回第一个数组中有的而后面的数组中没有的所有的值组成的新数组,对应键取自第一个数组。

例子:

<?php 
$array1 = array("a" => "green", "red", "blue", "red"); 
$array2 = array("b" => "green", "yellow", "red"); 
$result = array_diff($array1, $array2); print_r($result); 
?>

上例将输出:
Array 
( 
[1] => blue 
)

4.array_diff_assoc()

在前一个函数的基础上,不仅需要匹配值还要匹配键。

例子:

<?php 
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red"); 
$array2 = array ("a" => "green", "yellow", "red"); 
$result = array_diff_assoc($array1, $array2); 
?>

上例将输出:
Array 
( 
[b] => brown 
[c] => blue 
[0] => red 
)
PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
解析MySql与Java的时间类型
Jun 22 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
自制PHP框架之路由与控制器
May 07 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
tp5.1 实现setInc字段自动加1
Oct 18 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 #PHP
一步一步学习PHP(4) php 函数 补充2
Feb 15 #PHP
一步一步学习PHP(3) php 函数
Feb 15 #PHP
一步一步学习PHP(2)――PHP类型
Feb 15 #PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 #PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 #PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 #PHP
You might like
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
flask-restful使用总结
2018/12/04 Python
NumPy排序的实现
2020/01/21 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
幼儿园教师节活动方案
2014/02/02 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
信息管理专业自荐书
2014/06/05 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
学校个人对照检查材料
2014/08/26 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
部门2014年度工作总结
2014/11/12 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Java设计模式中的命令模式
2022/04/28 Java/Android