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 相关文章推荐
一个程序下载的管理程序(三)
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
php判断数组是否为空的实例方法
May 10 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创建PDF中文文档
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
php获取微信openid方法总结
2019/10/10 PHP
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
详解 vue.js用法和特性
2017/10/15 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
python打包生成so文件的实现
2020/10/30 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
促销活动计划书
2014/05/02 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
公司的力量观后感
2015/06/05 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
创业计划书之面包店
2019/09/17 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
理解python中装饰器的作用
2021/07/21 Python
java设计模式--建造者模式详解
2021/07/21 Java/Android