dポイントプレゼントキャンペーン実施中!

お世話になります。

$w をprint_rすると Array ( [0] => Array ( [email] => gmail.com ) [1] => Array ( [email] => yahoo.co.jp ) [2] => Array ( [email] => hotmail.com ) ) になり、$aは Array([0]=>yahoo.co.jp, [1]=>gmail.com, [2]=>infoseek.com) になります。

$wと$aをarray_diffをしようし、お互いに重複している値を消去し、消去するにはどうすればいいのでしょうか?

A 回答 (3件)

$w2 = array();


for($i=0;$i<count($w);$i++){
$w2[] = $w[$i]['email'];
}
とすると$wを1次元にした配列$w2ができます。
$w2と$aでarray_diffを使用すればいいのではないでしょうか。
    • good
    • 0
この回答へのお礼

回答していただいた方へ

ご回答していただきありがとうございました。なんとか解決できました。ありがとうございました。

お礼日時:2007/04/13 14:48

配列の重複なら下記のやり方では?


$a_2 array_unique ($a);
    • good
    • 0

総当りチェックをして引っかかったら削除する。


それぞれの配列内に重複値がないなら以下でいけますが、
あるならちょっと工夫が必要。

<?php
$w[]=array('email'=>'gmail.com');
$w[]=array('email'=>'yahoo.co.jp');
$w[]=array('email'=>'yahoo.co.jp');
$w[]=array('email'=>'hotmai.com');
$a[]=array('email'=>'yahoo.co.jp');
$a[]=array('email'=>'gmail.com');
$a[]=array('email'=>'infoseek.com');
foreach($w as $key1=>$val1){
foreach($a as $key2=>$val2){
if ($val1==$val2){
unset($w[$key1]);
unset($a[$key2]);
}
}
}
print_r($a);
print_r($w);
?>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!