多次元配列で重複した値を削除する
多次元配列で重複した値を削除したいとき
以下のような記述方法があったのでメモを。。。
例えば以下のような多次元配列があります。
$ary = array(
array("name"=>"aoi", "age"=>"13"),
array("name"=>"saito", "age"=>"25"),
array("name"=>"aoi", "age"=>"13"),
array("name"=>"nakai", "age"=>"34"),
array("name"=>"watabe", "age"=>"55")
);
重複した値を削除したい場合は以下のように記述します。
-例文-
$tmp = array();
$ary_result = array();
foreach( $ary as $key => $value ){
if( !in_array( $value["name"], $tmp) ) {
$tmp = $value["name"];
$ary_result = $value;
}
}
空の配列を作成
$tmp = array();
配列に値が見つからなければ$tmpに格納します
if( !in_array( $value["name"], $tmp) ) {
-結果-
Array
(
[0] => Array
(
[name] => aoi
[age] => 13
)
[1] => Array
(
[name] => saito
[age] => 25
)
[2] => Array
(
[name] => nakai
[age] => 34
)
[3] => Array
(
[name] => watabe
[age] => 55
)
)
同じnameの値を削除して、配列を作りなおすことが出来ました。