具有四个字段的数组的唯一值
Unique values of the array with four fields
我有一个这样的数组:
array(
0 => array(1, 2, 3, 4),
1 => array(1, 3, 2, 4),
2 => array(1, 2, 4, 3),
3 => array(1, 2, 5, 6)
)
我必须删除重复的记录。所以我最终需要这个数组:
array(
0 => array(1, 2, 3, 4),
3 => array(1, 2, 5, 6)
)
脚本在PHP.
谁能帮忙? :)
这应该适合你:
再次使用 array_map()
and sort()
the arrays. Then simply return them implode()
'ed. With the created array you can just use array_unique()
and then explode()
值遍历每个子数组。
<?php
$result = array_map(function($v){
return explode(",", $v);
}, array_unique(array_map(function($v){
sort($v);
return implode(",", $v);
}, $arr)));
print_r($result);
?>
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[3] => Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
)
)
另一种方法是
$filter = array();
$result = array_filter($array, function($e) use (&$filter) {
$sum = array_sum($e);
$ret = isset($filter[$sum]);
$filter[$sum] = true;
return !$ret;
});
这个一定是通俗易懂的
foreach($arr as $key => $value){
sort($value);
$arr[$key] = $value;
}
$result = array_unique($arr,SORT_REGULAR);
print_r($result);
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[3] => Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
)
)
我有一个这样的数组:
array(
0 => array(1, 2, 3, 4),
1 => array(1, 3, 2, 4),
2 => array(1, 2, 4, 3),
3 => array(1, 2, 5, 6)
)
我必须删除重复的记录。所以我最终需要这个数组:
array(
0 => array(1, 2, 3, 4),
3 => array(1, 2, 5, 6)
)
脚本在PHP.
谁能帮忙? :)
这应该适合你:
再次使用 array_map()
and sort()
the arrays. Then simply return them implode()
'ed. With the created array you can just use array_unique()
and then explode()
值遍历每个子数组。
<?php
$result = array_map(function($v){
return explode(",", $v);
}, array_unique(array_map(function($v){
sort($v);
return implode(",", $v);
}, $arr)));
print_r($result);
?>
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[3] => Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
)
)
另一种方法是
$filter = array();
$result = array_filter($array, function($e) use (&$filter) {
$sum = array_sum($e);
$ret = isset($filter[$sum]);
$filter[$sum] = true;
return !$ret;
});
这个一定是通俗易懂的
foreach($arr as $key => $value){
sort($value);
$arr[$key] = $value;
}
$result = array_unique($arr,SORT_REGULAR);
print_r($result);
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[3] => Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
)
)