论php数组合并

注:尽量不要在循环中操作数据库。

1.两个一维数组合并成一个一维数组

$a = array(‘morning‘,‘afternoon‘,‘night‘);

$b = array(‘breakfast‘,‘lunch‘,‘dinner‘);

(1)以$a中的数组元素为键名,以$b中的数组元素为键值而形成的一个新数组。

$c = array_combine($a,$b);

(2)将$a中与$b中键值相同的数组元素剔除,仅保留$a中不同的数组元素。也就是说返回差集。

$c=array_diff($a,$b);

(3)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。

$a = array(‘morning‘,‘afternoon‘,‘night‘);
         $b = array(‘breakfast‘,‘lunch‘,‘night‘);
         $c=array_diff_assoc($a,$b);
         print_r($c);

输出结果为:

(4)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。

$c=array_diff_key($a,$b);

空数组。

(5)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。

(6)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。

$a = array(‘morning‘,‘afternoon‘,‘night‘,‘today‘,‘yesterday‘,‘tomorrow‘);
$b = array(‘breakfast‘,‘lunch‘,‘night‘);
$c=array_diff_ukey($a,$b,function($a,$b){
if($a==$b)
return 0;
return ($a>$b)?-1:1;
});
print_r($c);

时间: 2024-08-24 11:18:17

论php数组合并的相关文章

java 有序数组合并

有序数组合并,例如: 数组 A=[100, 89, 88, 67, 65, 34], B=[120, 110, 103, 79, 66, 35, 20] 合并后的结果 result=[120, 110, 103, 100, 89, 88, 79, 67, 66, 65, 35, 34, 20] 程序: import java.util.Arrays; public class Test { public static void main(String[] args) { int[] a = {

算法--两个有序数组合并

两个有序数组合并 关键点:从后往前进行比较,这样保证数组A有用的部分不会因为在合并的过程中覆盖掉 第15节 有序数组合并练习题 有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B.请编写一个方法,将B合并入A并排序. 给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组. Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public class Merge {

php数组合并

php的array,和java是有很大差距的,虽然php的弱类型的设计可能会被很多java.C++的程序员诟病,但是我觉得在数组容器的设计上,php走的比java和C++都要远. java的容器设计除了不彻底的问题,其允许存在类C++的数组的存在,是java语言本身唯一一处不满足一切皆对象的存在. 实际上容器的存在,本身是要降低一定的效率的,可是如果过分强调效率,为什么不干脆使用机器码呢?所以我不太喜欢那些拿php容器设计走的过分远的观点. 众所周知,php的array本身是map. 对于普通数

PHP中数组合并的两种方法及区别介绍

PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = array( 'where' => 'uid=2', 'order' => 'uid desc', ); 1. array_merge,如果两个数组存在相同的key,后面的一个会覆盖前面的 复制代码代码如下: <?php $c = array_merge($a, $b); var_expo

关于table动态添加数据 单元格合并 数组合并

var newArr = [ {"BranchID":1,"BranchName":"城二","BranchFullName":"城二分公司","IssueTypeID":101,"IssueTypeName":"宏蜂窝连片弱覆盖","Total":242,"WithoutDemand":139,"

数组合并函数,二维数组相同字段合并到一起。

一般从数据库中提取数据时,会遇到各种各样类型的数据,要求也不尽相同.自己这两天开发的时候遇到一个很纠结的问题,如下: 比如一个二维数组是这样的: Array ( [0] => Array ( [uid] => 231 [username] => 123456 [active] =>aaaa [transfer] =>1111 ) [1] => Array ( [uid] => 231 [username] =>123456 [active] => bb

go语言:多个[]byte数组合并成一个[]byte

场景:在开发中,要将多个[]byte数组合并成一个[]byte,初步实现思路如下: 1.获取多个[]byte长度 2.构造一个二维码数组 3.循环将[]byte拷贝到二维数组中 package gstore import ( "bytes" ) //BytesCombine 多个[]byte数组合并成一个[]byte func BytesCombine(pBytes ...[]byte) []byte { len := len(pBytes) s := make([][]byte, l

将一个二维数组合并成一个一维数组

大家都知道php有内置的数组合并函数array_merage($arr,$arr1,$arr2,$arr3);那如何把一个二维数组如array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4)) 合并成如下的数组 array('a'=>1,'b'=>2,'c'=>3,'d'=>4);似乎,php目前还没有这样的内置函数吧,于是自己动手写了两种方法,仅供大家参考 第一种.方法当然是递归法呢,代码如下 <?php $new

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

两个已经从小到大的数组合并成为一个从小到大排序的数组 1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("这两个数组分别有多少个数:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("从小到大输入%d个数:\n",m); 9 for(i=0;i<m;i+