-1

私はこの配列を持っています

$arr[] = array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'email@test.com', 'dm' => 'test');
$arr[] = array('id' => '2', 'fn' => 'Some2', 'ln' => 'Test2', 'email' => 'otheremail@test.com', 'dm' => 'test');
$arr[] = array('id' => '3', 'fn' => 'Some3', 'ln' => 'Test3', 'email' => 'email@test.com', 'dm' => 'test');

重複する電子メールを持つすべての重複するキー$arr[]を削除して、これだけが残るようにします。

$arr[] = array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'email@test.com', 'dm' => 'test');
$arr[] = array('id' => '2', 'fn' => 'Some2', 'ln' => 'Test2', 'email' => 'otheremail@test.com', 'dm' => 'test');

ここでさまざまな例を見つけましたが、私の問題に一致するものはありませんでした。ありがとう

4

1 に答える 1

0
$arr = array(
    array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'email@test.com', 'dm' => 'test'),
    array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'other@test.com', 'dm' => 'test'),
    array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'email@test.com', 'dm' => 'test'),
    array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'email@test.com', 'dm' => 'test'),
    array('id' => '1', 'fn' => 'Some', 'ln' => 'Test', 'email' => 'other@test.com', 'dm' => 'test')
);

$checkEmail = array(); // restore email values

for($i=0;$i<count($arr);$i++){
    if (!in_array($arr[$i]['email'], $checkEmail)){ // check in each array if email value is unique
        print_r($arr[$i]); // if unique then output
    }
    $checkEmail[$i] = $arr[$i]['email']; // save email values
}

出力->

Array ( [id] => 1 [fn] => Some [ln] => Test [email] => email@test.com [dm] => test ) Array ( [id] => 1 [fn] => Some [ln] => Test [email] => other@test.com [dm] => test )
于 2013-03-21T20:11:05.613 に答える