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 相关文章推荐
用户的详细注册和判断
Oct 09 PHP
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
php全角字符转换为半角函数
Feb 07 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
php实现socket推送技术的示例
Dec 20 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
php use和include区别总结
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实现httpRequest的方法
2015/03/13 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
简明json介绍
2008/09/28 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
Python变量访问权限控制详解
2019/06/29 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
2014年团支部工作总结
2014/11/17 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
python单元测试之pytest的使用
2021/06/07 Python
Mysql忘记密码解决方法
2022/02/12 MySQL
Redis实战高并发之扣减库存项目
2022/04/14 Redis
mysql数据库如何转移到oracle
2022/12/24 MySQL