开发者

Remove duplicate elements off a multi-dimension array

开发者 https://www.devze.com 2023-01-09 02:44 出处:网络
I have an array contain this data Array ( [id] => Array ( [0] => 1 [1] => 10 [2] => 4 ) [age] => Array

I have an array contain this data

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

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

Now I want to remove duplicates from the ['age'] and leave the first one in tact.

So this would return

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

    [age] => Array
        (
            [0] => 1
            [2] 开发者_JAVA技巧=> 2
        ) 
)

Any ideas? Or is there a function already in place to do this?


Like Gordon said, you'd need a custom function to make the relationship but you can use http://php.net/manual/en/function.array-unique.php ?

Wouldn't it be better to have the keys of the age array the corresponding values of the id array?


<?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);
}

?>


You could try this

$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);

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

Regards Luke

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号