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

php数组值合并$arr = array(……);
$outarr = array();
foreach ($arr) {
$flag = false;
foreach ($outarr) {
if (id和title相等) {
$flag = true;
if (comment不相等) {
comment加一个元素;
break;
}
}
}
if ($flag == false) {
$outarr增加一个元素;
}
}
完全不讲究技巧的话,大致用这个逻辑可以完成您需要的功能 。
PHP中关于Array的函数非常多 , 可以阅读一下,看看有没有啥效率更好的办法 。
php里面如何合并数组?简单的方法是使用函数array_merge(),比如array_merge($arr_one,$arr_two );
或者forech方法
forech($arr_one as $v){
$arr_two[]=$v;
}
执行后数组one的元素全部添加到数组two中了
PHP如何合并数组当中有相同数值的数组array_unique函数提供了过滤重复的值的功能,但是该函数只能处理一维数组,如果遇到多维数组我们可以现将其转化为一维数组 。示例代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
* $data 是你要处理数据
* $result 是输出的结果
*/
//将其转化为一维数组
foreach ($data as $row) {
$row = serialize($row);
}
unset($row);
$data = https://www.04ip.com/post/array_unique($data);
//还原多维数组
foreach ($data as $row) {
$row = unserialize($row);
}
unset($row);
不好意思 楼主要求,我看错了 , 追加下面的代码
1
2
3
4
5
6
7
8
9
10
11
12
$result=array();
$tmp_arr=array();
foreach ($data as $row) {
$tmp_arr[$row['confuguarable_sku']][] = $row['size'];
}
//将尺寸用逗号拼接
foreach ($tmp_arr as $sku = $size) {
$result[] =array('confuguarable_sku'=$sku, 'size'=implode(",", $size));
}
echo "pre";
//输出结果
print_r($result);
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
【php合并数组中的数据 php合并两个数组有几种方式】=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
这会返回:
复制代码
代码如下:
Array
(
[AL]
=
Alabama
[AK]
=
Alaska
[AZ]
=
Arizona
[AR]
=
Arkansas
)
请教php数组如何合并我给个写法,,其实写法很多自己再慢慢琢磨下
?php
$a=array
(
0= array
(
'id'= 1,
'love'= '苹果'
),
1=array
(
'id'= 1,
'love'= '西瓜'
),
2= array
(
'id'= 2,
'hobby' = '桃子'
),
3= array
(
'id' = 2,
'hobby' = '梨子'
),
4= array
(
'id' = 2,
'hobby' = '葡萄'
),
5 = array
(
'id'= 3,
'hobby' = '香蕉'
)
);
$b=array();//最后结果存放的数组
$b[0]['id']=$a[0]['id'];//初始化数组
$b[0]['love']=array(isset($a[0]['love']) ? $a[0]['love'] :$a[0]['hobby']);//初始化数组
$temp=0;//初始化下标
for($i=1;$icount($a);$i)
{
$flag=0;//数组是否新增一个变量/还是合并
foreach($b as $k=$item)
{
if($a[$i]['id']==$item['id'])
{
$b[$k]['love'][]=isset($a[$i]['love']) ? $a[$i]['love']:$a[$i]['hobby'];
$flag=1;//合并;
break;
}
}
if($flag==0)//新增
{
$temp =1;
$b[$temp]['id']=$a[$i]['id'];
$b[$temp]['love']=array(isset($a[$i]['love']) ? $a[$i]['love'] :$a[$i]['hobby']);
}
}
var_dump($b);
?
关于php合并数组中的数据和php合并两个数组有几种方式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读