20,395
社区成员
发帖
与我相关
我的任务
分享
$list = array(
array("b"=>"a"),
array("a"=>"b"),
array("f"=>"h"),
array("f"=>"h"),
array("b"=>"z"),
array("u"=>"z")
);
$list = array(
array("b"=>"a"),
array("a"=>"b"),
array("b"=>"z"),
array("u"=>"z")
);
$list = array(
array("a"=>"b"),
array("u"=>"z")
);
$list = array(
array("b"=>"a"),
array("a"=>"b"),
);

function array_unique_double_zd($list, $type){
$list2 = array();
foreach($list as $v) {
$key = '';
switch ($type){
case 'k' :
$key = key($v);
break;
case 'v' :
$key = current($v);
break;
case 'kv' :
$key = sprintf('%s@%s', key($v), current($v));
break;
}
if(!isset($list2[$key])) ;
$list2[$key] = $v;
}
return array_values($list2);
}
$list = array(
array("b"=>"a"),
array("a"=>"b"),
array("f"=>"h"),
array("f"=>"h"),
array("b"=>"z"),
array("u"=>"z")
);
//去除key 和 value 相同的选项
$res = array();
$st = array();
foreach($list as $v) {
$k = sprintf('%s@%s', key($v), current($v));
if(isset($res[$k])) $st[] = $k;
else $res[$k] = $v;
}
foreach($st as $k) unset($res[$k]);
print_r(array_values($res));
Array
(
[0] => Array
(
[b] => a
)
[1] => Array
(
[a] => b
)
[2] => Array
(
[b] => z
)
[3] => Array
(
[u] => z
)
)
其他类同,只是 $k 取值不同而已
去除相同的key $k = key($v);
去除相同的value $k = current($v);