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的宝库目录--PEAR
Oct 09 PHP
递归列出所有文件和目录
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
PHP JSON 数据解析代码
May 26 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 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
实现树状结构的两种方法
2006/10/09 PHP
php 删除记录实现代码
2009/03/12 PHP
重新认识php array_merge函数
2014/08/31 PHP
学习php开源项目的源码指南
2014/12/21 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
Python字典操作简明总结
2015/04/13 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python 调用HBase的简单实例
2016/12/18 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
100%羊绒:NakedCashmere
2020/08/26 全球购物
商务英语专业毕业生自荐信
2013/11/05 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
图书室管理制度
2014/01/19 职场文书
打架检讨书500字
2014/01/29 职场文书
摄影展策划方案
2014/06/02 职场文书
十佳家长事迹材料
2014/08/26 职场文书
党风廉正建设责任书
2015/01/29 职场文书
朋友聚会开场白
2015/06/01 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书