我尝试了很多方法来消除数组中值的重复但是我无法删除值和重复。
function shallowCopy(src, dst) {
if (isArray(src)) {
dst = dst || [];
for (var i = 0, ii = src.length; i < ii; i++) {
dst[i] = src[i];
}
} else if (isObject(src)) {
dst = dst || {};
for (var key in src) {
if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {
dst[key] = src[key];
}
}
}
return dst || src;
}
我想得到的只是留在这种情况下:
Array
(
[0] => Array
(
[rut] => 333333333
[inscripcion_id] => 3940
)
[1] => Array
(
[rut] => 444444444
[inscripcion_id] => 3941
)
[2] => Array
(
[rut] => 333333333
[inscripcion_id] => 3985
)
)
其他人在数组中保存重复值。
答案 0 :(得分:0)
我的解决方案:
function unique_multidim_array($arreglo){
$duplicate = array();
$i = 0;
foreach ($arreglo as $a) {
foreach ($a as $b) {
$count_values[$b]++;
}
}
foreach ($arreglo as $key) {
if($count_values[$key['rut']] > 1){
$duplicate[$i] = $key;
$i++;
}
}
return $duplicate;
}
返回:
Array
(
[0] => Array
(
[rut] => 333333333
[inscripcion_id] => 3940
)
[1] => Array
(
[rut] => 333333333
[inscripcion_id] => 3985
)
)
答案 1 :(得分:0)
这是我的尝试......这需要php 5.5.0到
$arr1 = Array
(
"0" => Array
(
"rut" => 333333333,
"inscripcion_id" => 3940
),
"1" => Array
(
"rut" => 444444444,
"inscripcion_id" => 3941
),
"2" => Array
(
"rut" => 333333333,
"inscripcion_id" => 3985
),
"3" => Array
(
"rut" => 555555555,
"inscripcion_id" => 3987
)
);
$unique_array = array();
$unique_value = array_keys(array_count_values(array_column($arr1, "rut") ), 1, true);
foreach ($arr1 as $key => $inner_arr) {
if (in_array($inner_arr["rut"], $unique_value) ) {
$unique_array[] = $arr1[$key];
unset($arr1[$key]);
}
}
输出($arr1
):
Array
(
[0] => Array
(
[rut] => 333333333
[inscripcion_id] => 3940
)
[2] => Array
(
[rut] => 333333333
[inscripcion_id] => 3985
)
)
输出($unique_array
):
Array
(
[0] => Array
(
[rut] => 444444444
[inscripcion_id] => 3941
)
[1] => Array
(
[rut] => 555555555
[inscripcion_id] => 3987
)
)
这是demo
我必须指出原始数组键不会按顺序处理未设置的方法