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下intval()和(int)转换使用与区别
Jul 18 PHP
怎样去阅读一份php源代码
Aug 21 PHP
PHP中header和session_start前不能有输出原因分析
Jan 11 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
PHP实现的购物车类实例
Jun 17 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
php7中停止php-fpm服务的方法详解
May 09 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
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
wxPython 入门教程
2008/10/07 Python
python中range()与xrange()用法分析
2016/09/21 Python
numpy中的高维数组转置实例
2018/04/17 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
Python小白垃圾回收机制入门
2020/06/09 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
linux系统都有哪些运行级别
2016/03/26 面试题
大学生找工作推荐信范文
2013/11/28 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
入党综合考察材料
2014/06/02 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers