这样的二维数组合并并去掉重复值(attr_id,attr_name,attr_value三个字段都相同的则保留一个去除一个)Array
(
[0] => Array
(
[attr_id] => 16950
[attr_name] => 台式机CPU品牌
[attr_value] => AMD ) [1] => Array
(
[attr_id] => 16951
[attr_name] => 台式机操作系统
[attr_value] => Linux ))Array
(
[0] => Array
(
[attr_id] => 16955
[attr_name] => 售后服务
[attr_value] => 一年
))
(
[0] => Array
(
[attr_id] => 16950
[attr_name] => 台式机CPU品牌
[attr_value] => AMD ) [1] => Array
(
[attr_id] => 16951
[attr_name] => 台式机操作系统
[attr_value] => Linux ))Array
(
[0] => Array
(
[attr_id] => 16955
[attr_name] => 售后服务
[attr_value] => 一年
))
$a = Array
(
'0' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD'
),
'1' => Array
(
'attr_id' => '16951',
'attr_name' => '台式机操作系统',
'attr_value' => 'Linux'
),
'2' => Array
(
'attr_id' => '16955',
'attr_name' => '售后服务',
'attr_value' => '一年'
),
'3' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD'
)
);
foreach ($a as $k=>$v)
{
foreach ($a as $v1)
{
if($v['attr_id'] == $v1['attr_id'] && $v['attr_value'] == $v1['attr_value'])
{
unset($a[$k]);
}
}
}
这样处理后为空值
$ar = array_map('serialize', $ar);
$ar = array_unique($ar);
return array_map('unserialize', $ar);
}print_r( array_multi_unique($a) );
function array_unique_fb($array2D){
foreach ($array2D as $v){
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[] = $v;
}
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k =>; $v){
$temp[$k] = explode(",",$v); //再将拆开的数组重新组装
}
return $temp;
}
(
'0' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD',
'attr_type' => 1,
'belong' => 'goods_sku'
),
'1' => Array
(
'attr_id' => '16951',
'attr_name' => '台式机操作系统',
'attr_value' => 'Linux',
'attr_type' => 2,
'belong' => 'goods_sku'
),
'2' => Array
(
'attr_id' => '16955',
'attr_name' => '售后服务',
'attr_value' => '一年',
'attr_type' => 2,
'belong' => 'goods_sku'
),
'3' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD',
'attr_type' => 1,
'belong' => 'goods'
)
);
<?php$new = Array
(
'0' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD',
'attr_type' => 1,
'belong' => 'goods_sku'
),
'1' => Array
(
'attr_id' => '16951',
'attr_name' => '台式机操作系统',
'attr_value' => 'Linux',
'attr_type' => 2,
'belong' => 'goods_sku'
),
'2' => Array
(
'attr_id' => '16955',
'attr_name' => '售后服务',
'attr_value' => '一年',
'attr_type' => 2,
'belong' => 'goods_sku'
),
'3' => Array
(
'attr_id' => '16950',
'attr_name' => '台式机CPU品牌',
'attr_value' => 'AMD',
'attr_type' => 1,
'belong' => 'goods'
)
);// 老大的基础上改改
function array_multi_unique($ar, $filter=array()) { if(!empty($filter)) {
$_v = array_fill_keys($filter, ' ');
$_ar = array();
foreach($ar as $k => $v) {
$_ar[$k] = array_intersect_key($v, $_v);
}
} else {
$_ar = $ar;
} $_ar = array_map('serialize', $_ar);
$_ar = array_unique($_ar);
$_ar = array_map('unserialize', $_ar); if(!empty($filter)) {
return array_intersect_key($ar, $_ar);
} else {
return $_ar;
}
}print_r(array_multi_unique($new, array('attr_id', 'attr_name', 'attr_value')));