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和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
迁移PHP版本到PHP7
Feb 06 PHP
php中动态调用函数的方法
Mar 16 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
php json转换相关知识(小结)
Dec 21 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 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使用者状态管理功能的应用
2006/10/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Python的subprocess模块总结
2014/11/07 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
银行办理业务介绍信
2014/01/18 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL