多次元配列で重複した値を削除する

  

 

多次元配列で重複した値を削除したいとき

以下のような記述方法があったのでメモを。。。

 

f:id:sinya0228:20201205133919p:plain

 

 

例えば以下のような多次元配列があります。

 

$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の値を削除して、配列を作りなおすことが出来ました。