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.NET的入门教程
Oct 09 PHP
global.php
Dec 09 PHP
discuz安全提问算法
Jun 06 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 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 采集书并合成txt格式的实现代码
2009/03/01 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
php生成HTML文件的类方法
2019/10/11 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
vue使用v-for实现hover点击效果
2018/09/29 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
python实现桌面壁纸切换功能
2019/01/21 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
介绍一下linux文件系统分配策略
2013/02/25 面试题
应届生船舶驾驶求职信
2013/10/19 职场文书
初中生学习的自我评价
2013/11/14 职场文书
劳动模范事迹材料
2014/01/19 职场文书
上海世博会口号
2014/06/19 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android
Mysql排序的特性详情
2021/11/01 MySQL
HTML中的表格元素介绍
2022/02/28 HTML / CSS
java实现web实时消息推送的七种方案
2022/07/23 Java/Android