Php 从多维数组中删除重复的元素

Php 从多维数组中删除重复的元素,php,arrays,duplicates,Php,Arrays,Duplicates,我有一个数组包含这个数据 Array ( [id] => Array ( [0] => 1 [1] => 10 [2] => 4 ) [age] => Array ( [0] => 1 [1] => 1 [2] => 2

我有一个数组包含这个数据

Array
    (
    [id] => Array
        (
            [0] => 1
            [1] => 10
            [2] => 4
        )

    [age] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )
)
现在我想删除['age']中的重复项,并保留第一个

所以这会回来

Array
    (
    [id] => Array
        (
            [0] => 1
            [2] => 4
        )

    [age] => Array
        (
            [0] => 1
            [2] => 2
        ) 
)

有什么想法吗?或者已经有一个函数可以实现这一点了吗?

正如Gordon所说,您需要一个自定义函数来建立关系,但您可以使用它

让age数组的键与id数组的对应值不是更好吗?


<?php

$array = array(
    'id' => array(0 => 1, 1 => 10, 3 => 4),
    'age' => array(0 => 1, 1 => 1, 2 => 2)
);  

array_walk($array, 'dupe_killer');

print_r($array);

function dupe_killer(&$value, $key)
{
    $value = array_unique($value);
}

?>
您可以试试这个

$array = array('id' => array(1,10,4), 'age'=>array(1,1,2));
$age_array = array();
foreach ($array['age'] as $key => $val) {
  if (in_array($val, $age_array))
    unset($array['id'][$key], $array['age'][$key]);
  $age_array[] = $val;
}
print_r($array);
这将返回
Array([id]=>Array([0]=>1[2]=>4)[age]=>Array([0]=>1[2]=>2])

问候
Luke

如果$array['age']中已经存在一个值,您希望将其删除,同时从$array['id']中删除具有相同键(与已删除的键相同)的项,对吗?问题主体中缺少了这一点。为什么返回中缺少id中的键“1”?值10不是重复值。array\u walk将用户定义的函数funcname应用于数组$array的每个元素。虽然这里没有必要,但它不起作用。从$ids中删除重复项,但不从$agesarray_unique()中删除相同的项不是递归的,如何将其应用于每个元素?啊,我误解了这个问题。看来找到了答案,干杯@约什托尼克。我认为您需要再次阅读array_unique()的手册;好主意,这样我就可以抓到第一件东西,不用担心被骗了!