189 8069 5689

php数据合并两个数组 php合并两个数组有几种方式

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

首先你的思路是正确的,这点可以肯定,合并数组可以使用array_merge() 这个函数,

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、新乡县网络推广、重庆小程序开发公司、新乡县网络营销、新乡县企业策划、新乡县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供新乡县建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。

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

我不是很清楚你是要怎么合并,但是我推测是第二种效果

第一种效果:

?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_dump($a);

var_dump(array_replace_recursive($a,$b));

运行的结果:

array (size=2)

28150000 = 

array (size=2)

0 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = string '81753' (length=5)

1 = 

array (size=5)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81757

'old_keywordid' = int 11933

'old_keyword' = string '鲜花' (length=6)

28160000 = 

array (size=2)

0 = 

array (size=5)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81759

'old_keywordid' = int 12478

'old_keyword' = string '鲜花' (length=6)

1 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81754

第二 种效果

由于你的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' = '鲜花' 

)

;

function array_merge_number($array1,$array2){

foreach($array1 as $key=$val){

if($array2[$key]){

$val = array_merge($array2[$key],$val);

}

}

return $array1;

}

var_dump(array_merge_number($a, $b));

运行结果:

array (size=2)

28150000 = 

array (size=3)

0 = 

array (size=2)

'old_keywordid' = int 11933

'old_keyword' = string '鲜花' (length=6)

1 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = string '81753' (length=5)

2 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81757

28160000 = 

array (size=3)

0 = 

array (size=2)

'old_keywordid' = int 12478

'old_keyword' = string '鲜花' (length=6)

1 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81759

2 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81754

我很想写一个能够深度合并的函数,但是怎么考虑都不合适,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_dump(array_merge_recursive($a, $b));

运行结果:

array (size=2)

'2815-0000' = 

array (size=3)

0 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = string '81753' (length=5)

1 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81757

2 = 

array (size=2)

'keywordid' = int 11933

'old_keyword' = string '鲜花' (length=6)

'2816-0000' = 

array (size=3)

0 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81759

1 = 

array (size=3)

'keywordid' = int 3653

'keyword' = string '鲜花' (length=6)

'orders_id' = int 81754

2 = 

array (size=2)

'old_keywordid' = int 12478

'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);

?

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

扩展资料:

PHP常用函数

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

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

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

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

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

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

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

参考资料来源:百度百科-PHP (超文本预处理器)

php两个数组合并问题

$arr1 = array(1,1,2,2,6);

$arr2 = array(4,6,1,7,3);

$result = array();

foreach($arr1 as $k = $v){

if (!array_key_exists($v,$result)) $result[$v] = array();

array_push($result[$v], $arr2[$k]);

}

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

array array_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_dump ( $result );

?


当前名称:php数据合并两个数组 php合并两个数组有几种方式
URL地址:http://cdxtjz.cn/article/hgpoih.html

其他资讯