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 select,radio和checkbox默认选择的实现方法
May 15 PHP
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
php中取得文件的后缀名?
Feb 20 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
PHP中的流(streams)浅析
Jul 02 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
跟老齐学Python之关于类的初步认识
2014/10/11 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
python实现多张图片拼接成大图
2019/01/15 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python @property使用方法解析
2019/09/17 Python
使用python模拟高斯分布例子
2019/12/09 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
玲玲的画教学反思
2014/02/04 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
会计学自我鉴定
2014/02/06 职场文书
生物制药专业求职信
2014/03/11 职场文书
中学生寄语大全
2014/04/03 职场文书
销售经理工作检讨书
2015/02/19 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL