当前位置:首页 » 编程语言 » php两个数组组合

php两个数组组合

发布时间: 2022-08-24 05:24:18

㈠ 如何合并在php对象的两个数组

1.首先你的思路是正确的,这点可以肯定,合并数组可以使用array_merge() 这个...
2.如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的

㈡ php 两个数组怎么合并成一个

arrayarray_merge(array$array1[,array$...])

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。


如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符:

<?php
$array1=array(0=>'zero_a',2=>'two_a',3=>'three_a');
$array2=array(1=>'one_b',3=>'three_b',4=>'four_b');
$result=$array1+$array2;
var_mp($result);
?>

㈢ php两个相关的多维数组怎么合并成一个数组

如果是两个数组是相对应的,可以使用以下方法:

<?php
//数组1(gc_class):
$gc_class=array(
0=>array('gc_id'=>1,'gc_name'=>'分类1','gc_title'=>'111111'),
1=>array('gc_id'=>2,'gc_name'=>'分类2','gc_title'=>'2222')
);

//数组2(acticity):
$acticity=array(
'0'=>array('activity_id'=>1,'gc_class'=>1,'activity_name'=>'分类1下面的活动'),
'1'=>array('activity_id'=>2,'gc_class'=>2,'activity_name'=>'分类2下面的活动')
);

$arrs=array();
foreach($gc_classas$key=>$_gc_class){
$arrs[$key]=array_merge($_gc_class,$acticity[$key]);
}
print_r($arrs);
exit;

㈣ php下将多个数组合并成一个数组的方法与实例代码

1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
复制代码
代码如下:
array
array_merge
(array
array1
array2…,arrayN)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
复制代码
代码如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
这将返回如下所示的结果,运行代码:
复制代码
代码如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
复制代码
代码如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
这将返回如下结果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,两个输入数组必须大小相同,不能为空。示例如下:
复制代码
代码如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
这会返回:
复制代码
代码如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)

㈤ 如何用Php把这两个数组合并呢

java">我不是很清楚你是要怎么合并,但是我推测是第二种效果
第一种效果:
<?php
$a=Array(
"28150000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>'81753'
),

'1'=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81757
)
)
,

"28160000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81759
),

1=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81754
)
)

);

$b=Array(
"28150000"=>Array(
1=>Array(
'old_keywordid'=>11933,
'old_keyword'=>'鲜花'
)
),

"28160000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鲜花'
)
)
)
;
//var_mp($a);
var_mp(array_replace_recursive($a,$b));

运行的结果:

array(size=2)
28150000=>
array(size=2)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>string'81753'(length=5)
1=>
array(size=5)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81757
'old_keywordid'=>int11933
'old_keyword'=>string'鲜花'(length=6)
28160000=>
array(size=2)
0=>
array(size=5)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81759
'old_keywordid'=>int12478
'old_keyword'=>string'鲜花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81754


第二 种效果

由于你的key是数字,即使是用字符串表示,在php的数组中也是数字,因此不能够使用array_merge_recursive,真是麻烦,如果你是一维的,我可以写一个函数,但是如果是多维的,就没有办法了

<?php
$a=Array(
"28150000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>'81753'
),

1=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81757
)
)
,

"28160000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81759
),

1=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81754
)
)

);

$b=Array(
"28150000"=>Array(
1=>Array(
'old_keywordid'=>11933,
'old_keyword'=>'鲜花'
)
),

"28160000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鲜花'
)
)
)
;
functionarray_merge_number($array1,$array2){
foreach($array1as$key=>&$val){
if($array2[$key]){
$val=array_merge($array2[$key],$val);
}
}
return$array1;
}
var_mp(array_merge_number($a,$b));

运行结果:

array(size=2)
28150000=>
array(size=3)
0=>
array(size=2)
'old_keywordid'=>int11933
'old_keyword'=>string'鲜花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>string'81753'(length=5)
2=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81757
28160000=>
array(size=3)
0=>
array(size=2)
'old_keywordid'=>int12478
'old_keyword'=>string'鲜花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81759
2=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81754

我很想写一个能够深度合并的函数,但是怎么考虑都不合适,28160000是key值,并且是数字性的,记住array中key值只能是数字和字符串,28160000即使你写成'28160000'也只会当成数字,你里面的2 1 0也都是数字,很明显,你不想要28160000被当成数字,但是你想要0 1 2被当成数字,这就很难办了,如果你可以把28160000改成不能解析称数字的字符串,那么请用array_merge_recursive,这个已经足够满足你的需求了:

<?php
$a=Array(
"2815-0000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>'81753'
),

1=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81757
)
)
,

"2816-0000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81759
),

1=>Array(
'keywordid'=>3653,
'keyword'=>'鲜花',
'orders_id'=>81754
)
)

);

$b=Array(
"2815-0000"=>Array(
1=>Array(
'keywordid'=>11933,
'old_keyword'=>'鲜花'
)
),

"2816-0000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鲜花'
)
)
)
;

var_mp(array_merge_recursive($a,$b));

运行结果:

array(size=2)
'2815-0000'=>
array(size=3)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>string'81753'(length=5)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81757
2=>
array(size=2)
'keywordid'=>int11933
'old_keyword'=>string'鲜花'(length=6)
'2816-0000'=>
array(size=3)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81759
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鲜花'(length=6)
'orders_id'=>int81754
2=>
array(size=2)
'old_keywordid'=>int12478
'old_keyword'=>string'鲜花'(length=6)

如果你不能的话,那么就使用我写的那个函数

㈥ php 两个普通数组合并为一个普通数组

php两个普通数组合并为一个普通数组可以参考下面的代码:

<?php

$a=array(1,2,3,4,5);

$b=array(6,7,8,9,10);

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

print_r($c);

?>

注:当被合并的数组中有一个数组为空时,可能会出现合并后的数组也为空。

(6)php两个数组组合扩展阅读:

PHP常用函数

printf()函数输出格式化的字符串。

print()函数输出一个或多个字符串。

parse_str()函数把查询字符串解析到变量中。

ord() 函数返回字符串第一个字符的 ASCII 值。

number_format()函数通过千位分组来格式化数字。

nl2br()函数在字符串中的每个新行 ( ) 之前插入 HTML 换行符 (<br />)。

nl_langinfo()函数返回指定的本地信息。

㈦ PHP两个一维数组合并为二维数组

<?php
$arr1=array('足球','篮球');
$arr2=array('冰棒','雪糕');
//方法一:直接组合
$B=array($arr1,$arr2);
//方法二:键值组合
$C=array();
$C['运动项目']=$arr1;
$C['吃的']=$arr2;

//输出看看
echo"<pre>";
print_r($B);
print_r($C);

//附加:当然,这两个数组还可以在组合
$fujia=array();
$fujia['B方法']=$B;
$fujia['C方法']=$C;
echo"<hr/>";
print_r($fujia);
?>

㈧ php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复

php将两个键名和键值的数组元素合并为一个数组

你好,有两个方法可以实现:

一:

$arry_a=array(0,1,2);
$arry_b=array('dongsir','董先生','董先生的CSDN博客');
$arry_ab=[];
foreach($arry_bas$key=>$value){
$arry_ab[$arry_a[$key]]=$value;
}
echo"<pre>";
print_r($arry_ab);

输出

Array
(
[0]=>dongsir
[1]=>董先生
[2]=>董先生的CSDN博客
)

第二个方法:

php将两个键名和键值的数组元素合并为一个数组

Array
(
[a]=>dongsir,董先生
[c]=>董先生的CSDN博客
)

㈨ PHP如何把两个数组结果合并在一起

首先你的思路是正确的,这点可以肯定,合并数组可以使用array_merge() 这个函数,
array_merge() 函数把两个或多个数组合并为一个数组。
如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。

㈩ php 两个数组,组合到一起

就是用array_merg来组合数组

$arr1=Array("Price" => 100,"Count" => 2);
$arr2=Array("Price" => 68,"Count" => 1);
$arr3=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/3/4/d/a/thumb_54e05b04e4e1c.jpg","ItemName" => "蓝玛瑙","ItemDescription" =>"");
$arr4=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/d/1/a/f/thumb_54e0609cb71b0.jpg","ItemName" => "可调大小朱砂双鱼手串","ItemDescription" =>"");
$data1=array_merge($arr1,$arr3);
$data2=array_merge($arr2,$arr4);
$datas=Array("7"=>$data1,"11"=>$data2);
print_r($datas);

热点内容
请稍作停留密码是什么意思 发布:2024-05-19 20:37:12 浏览:244
linux结束符 发布:2024-05-19 20:33:05 浏览:817
招标服务器云 发布:2024-05-19 20:04:19 浏览:584
搭建小米云服务器 发布:2024-05-19 19:43:17 浏览:131
苹果手机备忘录怎么加密 发布:2024-05-19 18:57:57 浏览:16
光荣脚本 发布:2024-05-19 18:57:48 浏览:997
pythonjson字符串 发布:2024-05-19 18:51:43 浏览:253
什么是服务器厂商介绍 发布:2024-05-19 18:50:09 浏览:371
服务器网卡硬件型号怎么看 发布:2024-05-19 18:36:41 浏览:667
修改pve服务器ip 发布:2024-05-19 18:31:52 浏览:470