- ベストアンサー
Arrayを並びかえる!?
お世話になります。 $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をしようし、お互いに重複している値を消去し、消去するにはどうすればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$w2 = array(); for($i=0;$i<count($w);$i++){ $w2[] = $w[$i]['email']; } とすると$wを1次元にした配列$w2ができます。 $w2と$aでarray_diffを使用すればいいのではないでしょうか。
その他の回答 (2)
- mi8ko
- ベストアンサー率0% (0/2)
配列の重複なら下記のやり方では? $a_2 array_unique ($a);
- yambejp
- ベストアンサー率51% (3827/7415)
総当りチェックをして引っかかったら削除する。 それぞれの配列内に重複値がないなら以下でいけますが、 あるならちょっと工夫が必要。 <?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); ?>
お礼
回答していただいた方へ ご回答していただきありがとうございました。なんとか解決できました。ありがとうございました。