❶ 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 = 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将数组键值相同的数组合并数组为一个数组
把'huaka'改成了'huakai'似乎是一个人
<?php
$a=array(
array("username"=>"piaoyudesi","email"=>"[email protected]","address"=>"shenzhen","item_id"=>"10058","item_title"=>"BPS8"),
array("username"=>"huakai","email"=>"[email protected]","address"=>"zhongshan","item_id"=>"10087","item_title"=>"BPS9"),
array("username"=>"huakai","email"=>"[email protected]","address"=>"zhongshan","item_id"=>"10047","item_title"=>"BPS10"),
array("username"=>"piaoyudesi","email"=>"[email protected]","address"=>"shenzhen","item_id"=>"10042","item_title"=>"BPS10"),
array("username"=>"jimowenxin","email"=>"[email protected]","address"=>"zhuhai","item_id"=>"10031","item_title"=>"BPS18")
);
$u=array();
foreach($a as $k=>&$e){
$name=&$e['username'];
if(!isset($u[$name])){
$u[$name]=$e;
unset($u[$name]['item_id'],$u[$name]['item_title']);
}
$u[$name]['goods'][]=array('item_id'=>$e['item_id'],'item_title'=>$e['item_title']);
}
$a=array_values($u); unset($u);
print_r($a);
=========
Array
(
[0] => Array
(
[username] => piaoyudesi
[email] => [email protected]
[address] => shenzhen
[goods] => Array
(
[0] => Array
(
[item_id] => 10058
[item_title] => BPS8
)
[1] => Array
(
[item_id] => 10042
[item_title] => BPS10
)
)
)
[1] => Array
(
[username] => huakai
[email] => [email protected]
[address] => zhongshan
[goods] => Array
(
[0] => Array
(
[item_id] => 10087
[item_title] => BPS9
)
[1] => Array
(
[item_id] => 10047
[item_title] => BPS10
)
)
)
[2] => Array
(
[username] => jimowenxin
[email] => [email protected]
[address] => zhuhai
[goods] => Array
(
[0] => Array
(
[item_id] => 10031
[item_title] => BPS18
)
)
)
)
❸ php 合并多维数组中相同的值
$arr=array(
array(
array(
"stocknotifyId"=>1,
"sku"=>'13809_BL_37',
"email"=>'[email protected]'
),
array(
"stocknotifyId"=>3,
"sku"=>'13809_BL_37',
"email"=>'[email protected]'
),
array(
"stocknotifyId"=>5,
"sku"=>'13809_BL_37',
"email"=>'[email protected]'
)
),
array(
array(
"stocknotifyId"=>2,
"sku"=>'13809_B_39',
"email"=>'[email protected]'
)
),
array(
array(
"stocknotifyId"=>4,
"sku"=>'13809_BL_39',
"email"=>'[email protected]'
)
)
);
$re=array();
foreach($arras$a){
foreach($aas$v){
$tmp_v=$v;
unset($tmp_v['email']);
if(isset($re[$v['email']])){
$re[$v['email']][]=$tmp_v;
}else{
$re[$v['email']]=array($tmp_v);
}
}
}
print_r($re);
<!--output-->
Array
(
[[email protected]]=>Array
(
[0]=>Array
(
[stocknotifyId]=>1
[sku]=>13809_BL_37
)
[1]=>Array
(
[stocknotifyId]=>2
[sku]=>13809_B_39
)
)
[[email protected]]=>Array
(
[0]=>Array
(
[stocknotifyId]=>3
[sku]=>13809_BL_37
)
[1]=>Array
(
[stocknotifyId]=>4
[sku]=>13809_BL_39
)
)
[[email protected]]=>Array
(
[0]=>Array
(
[stocknotifyId]=>5
[sku]=>13809_BL_37
)
)
)
❹ php 把多维数组中,某值相同的项合并,重组数据
<?php
$laArray = array(
0 => array("id"=>11,"name"=>"happy","age"=>"20","moeny"=>100),
1 => array("id"=>29,"name"=>"lucy","age"=>"20","moeny"=>100),
2 => array("id"=>34,"name"=>"happy","age"=>"20","moeny"=>235),
3 => array("id"=>42,"name"=>"happy","age"=>"15","moeny"=>100),
4 => array("id"=>51,"name"=>"happy","age"=>"20","moeny"=>600),
5 => array("id"=>61,"name"=>"lucy","age"=>"20","moeny"=>350),
6 => array("id"=>61,"name"=>"lucy","age"=>"23","moeny"=>150),
);
$temArr = $laArray ;
$newArr = array();
foreach($laArray as $num => $arr ){
unset($temArr[$num]);
$id = $arr['id'];
foreach($temArr as $tNum =>$tArr ){
$n_arr = array();
$tem_moeny = array();
if($arr['name']== $tArr['name'] && $arr['age']== $tArr['age']){
$id .= '+'.$tArr['id'];
$n_arr['id'] = $id;
$n_arr['name'] = $arr['name'];
$n_arr['age'] = $arr['age'];
if(is_array($arr['moeny'])){
array_push($n_arr['moeny'], $tArr['moeny']);
}else{
$tem_moeny [] = $arr['moeny'];
$tem_moeny [] = $tArr['moeny'];
}
$tem_moeny[] = $tArr['moeny'];
$n_arr['moeny'] = $tem_moeny;
$newArr[] = $n_arr ;
}
}
if($id == $arr['id']){
$newArr[] = $arr ;
}
}
print_r($newArr);
?>
❺ php如何将一个数组重复的元素合并到一个新的数组
具体实例代码如下:
<?php
// 删除数组中相同元素,只保留一个相同元素
function formatArray($array)
{
sort($array);
$tem = "";
$temarray = array();
$j = 0;
for($i=0;$i<count($array);$i++)
{
if($array[$i]!=$tem)
{
$temarray[$j] = $array[$i];
$j++;
}
$tem = $array[$i];
}
return $temarray;
}
//测试 调用函数
$array = array('aa','bb','aa',3,4,5,5,5,5,'bc');
$arr = formatArray($array);
print_r($arr);
?>
❻ php 俩个二维数组合并,根据相同的值,去合并数组
不知道你有没有想过,数组不要使用0、1、2、....这些下标,而是使用主键作为下标,例如:
$test=array(
'20181005'=>array('openup'=>1,'shenhe'=>5,'rejection'=>0,'adopt'=>1),
'20181006'=>array('openup'=>1,'shenhe'=>5,'rejection'=>0,'adopt'=>1),
'20181007'=>array('openup'=>1,'shenhe'=>5,'rejection'=>0,'adopt'=>1)
);
这样是不是怎么合并都简单了呢
❼ php中,合并一个数组里相同的值。
直接用array_unique()函数即可
$arr=['0006','0006','0005'];
print_r($arr);//Array([0]=>0006[1]=>0006[2]=>0005)
$arr=array_unique($arr);
print_r($arr);//Array([0]=>0006[2]=>0005)
❽ php 把带相同值的两个数组合并成一个如事例
没太明白你的意思,不过这三个函数应该有一个适合你的
array_combine(array1,array2)
array_merge(array1,array2,array3...)
array_merge_recursive(array1,array2,array3...)
❾ php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
1、新建php文件。
❿ php将两个二维数组按具有相同值合并
开始 - 运行输入msconfig,回车,进入系统配置,点击:引导 - 高级选项,在处理器个数处,点击勾选4,确定,重启电脑。