php数组分开_php 数组的合并、拆分、区别取值函数集-程序员宅基地

技术标签: php数组分开  

合并数组有三个函数:

1.array_combine()

携带两个参数数组,参数数组一的值作新数组的键,参数数组二的值作新数组的值。很简单。

例子:

$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()

携带两个参数数组,简单的将数组二追加到数组一的后面构成新数组。

例子:

$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()的处理方式是重构子数组,将重复的键的值组成一个新的数值数组。

例子:

$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为空,则结束位置在数组结尾。

例子:

$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的子数组。

例子:

$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()

携带参数不定,均为数组,返回所有数组中公共元素的值组成的数组,数组的键由所在第一个数组的键给出。

例子:

$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()

在前一个函数的基础上,返回所有数组中键、值均相同的键值对。

例子:

$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()

携带多个数组,返回第一个数组中有的而后面的数组中没有的所有的值组成的新数组,对应键取自第一个数组。

例子:

$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()

在前一个函数的基础上,不仅需要匹配值还要匹配键。

例子:

$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

)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39583655/article/details/111780194

智能推荐

更换程序glibc版本_glibc降级-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏3次。笔记_glibc降级

计算思维:1~2022的编程求和(Python版和C版)_python编程求1到2023的数和-程序员宅基地

文章浏览阅读814次。世界上有三大思维,那就是实证思维、逻辑思维和计算思维。物理类实验是实证思维,推理判断是逻辑思维,而计算思维,顾名思义就是计算机的思维方式。接下来,我们通过一个求和来了解一下吧什么是计算思维吧。问题:1+2+3+4+...+2022.计算机每次只进行一个运算,计算机只认识0和1,计算机的世界是二进制的,而咱们人类的世界是十进制的,所以计算机专业学生入学学的第一个内容就是十进制和二进制的相互转换。Python版 sum=0for i in range(1,2023): su_python编程求1到2023的数和

基于51单片机智能鱼缸仿真LCD1602显示( proteus仿真+程序+设计报告+讲解视频)-程序员宅基地

文章浏览阅读1k次,点赞15次,收藏11次。基于51单片机智能鱼缸仿真LCD显示( proteus仿真+程序+设计报告+讲解视频)仿真图proteus7.8及以上程序编译器:keil 4/keil 5编程语言:C语言设计编号:S0080。

mybatis----有用配置知识归纳(狂神说学习总结)_mybatis需要配置什么-程序员宅基地

文章浏览阅读1k次,点赞41次,收藏24次。jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。: 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得并发 Web 应用快速响应请求的流行处理方式。配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过default指定)在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。数据源是必须配置的。_mybatis需要配置什么

无刷电机篇(一)直流无刷电机(BLDC)介绍_bldc电机-程序员宅基地

文章浏览阅读1.4k次,点赞21次,收藏36次。对于电机的分类有很多,篇幅原因,这里不作过来描述,感兴趣的兄弟可自行了解。直流无刷电机(BLDC)的定子由硅钢片组成(如下图),定子绕组置于沿内部轴轴向开凿的槽中(涉及铁芯极数(槽数N)参数)。其因具有高输出功率、低电噪声、高可靠性、高动态响应、电磁干扰少、更好的转速-转矩等优点,而被广泛使用。上图无刷电机由前盖、中盖、磁铁、硅钢片、漆包线、轴承、转轴以及后盖组成。其中,磁铁、轴承、转轴组成电机的。无刷电机根据转子和定子的排位结构,可分为外转子电机和内转子电机两种(如下图)。从本篇开始,后续会对。_bldc电机

Apache2.2+fastCGI+(多版本)PHP配置_httpd的fastcgi可以写多个地址吗?-程序员宅基地

文章浏览阅读2.6k次。http://www.cnblogs.com/xiaoyaoxia/archive/2011/09/29/2195434.html 最近因为项目需要(项目主管希望能让项目在多版本PHP【5.1.0以上】中都能保证正常运行,实话说,要在一个Apache(我用的是Apache)中加载多个版本的Php 进行测试,还真的没有试过,也不知道到底怎么样,也担心把自己ubunt_httpd的fastcgi可以写多个地址吗?

随便推点

php db-lib,php安装dblib扩展,连接mssql的具体步骤-程序员宅基地

文章浏览阅读264次。下面小编就为大家带来一篇php安装dblib扩展,连接mssql的具体步骤。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧1、先安装freetds 然后修改配置文件不要装0.82版本,会报编译失败Compile Failure With freetds0.82进到freetds目录下编译安装./configure --prefix=/usr/local/freetds..._检查 db 抽象库变量 $dblib_path 在 base_conf.php

大数据、机器学习与深度学习类命令行工具汇总-程序员宅基地

文章浏览阅读70次。抓紧你的键盘!无需鼠标或者GUI,我们完全能够在OS X与Linux上完成大量操作。面向各类*N*X系统的大量出色命令行工具一直在技术行业拥有极高人气,且已经扩展至Python、Go、NodeJS乃至各类混合型工具当中。即使大家并不打算通过命令行运行整条数据处理管道,这些工具仍然能够带来可观助益。《命令行上的数据科学(Data Science at t..._polarity_scores 输入到excel中

不用notifyDataSetChanged_不使用notifyd-程序员宅基地

文章浏览阅读1.5k次。转自http://www.cnblogs.com/zhengbeibei/archive/2013/02/22/2922635.html帖子中讲述的项目使用了listView这个控件,而且自定义了adapter。在更新item的进度条时发现每次使用notifyDataSetChanged(),都会去调用自定义adapter中的getView方法。这时问题就出现了,用notifyDataSetC_不使用notifyd

2021.05.15智能风控峰会之流量反作弊论坛-论坛笔记_网络 风控图卷积神经网络 风控-程序员宅基地

文章浏览阅读944次。在这个新媒体时代,各种低俗广告和短视频、造谣、刷单、违法曝光等内容不断触及法律底线,而人工审核的传统方式已经无法应付机器爆发式生成的内容量,因此,如何做好流量反作弊方面的智能风控一跃成为热点。本次论坛分享从胡一然老师处了解到GCN 图卷积神经网络的模型在异常流量识别方面的应用;从余意老师处了解到虚假流量给公司业务带来的损失以及全栈式实时风控引擎相比其他反作弊平台的优势;从王璐老师处了解到图算法的架构和建模流程、挖掘黑产的流程和方法;从张宇仁老师处了解到电商短视频行业的风险以及对抗黑产的难度、反作弊的特征、_网络 风控图卷积神经网络 风控

FileNotFoundException: /storage/emulated/0/Pictures/1582: open failed: EACCES (Permission denied)_厕拍-程序员宅基地

文章浏览阅读4.4k次。Android10弃用了管理分区外部储存,在application中加入android:requestLegacyExternalStorage="true"就可以_厕拍

Application/octet-stream,http服务器设置响应头让浏览器下载内容-程序员宅基地

文章浏览阅读2k次,点赞10次,收藏10次。application 表明是某种二进制数据 application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf。audio 表明是某种音频文件 audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav。_application/octet-stream