以前、配列の重複排除に関する記事を書きましたが、それは 1 次元配列に限定されていました。次の関数は 2 次元配列に使用できます:
コードをコピー コードは次のとおりです:
//削除2 次元配列からの重複値
function array_unique_fb($array2D)
{
foreach ($array2D as $v)
{
$v = join(",", $v); //次元削減、implode を使用して 1 次元配列をカンマで接続された文字列に変換することもできます
$temp[] = $v>}
$temp = array_unique( $temp); //重複する文字列、つまり繰り返される 1 次元配列を削除します
foreach ($temp as $k => $v)
{
$temp[$k] =explode (",",$v); // 次に、逆アセンブルされた配列を再構築します。
}
return $temp;
}
コードをコピー コードは次のとおりです:
//この 2 つ-次元配列は重複した値を削除し、キー値を保持します
function array_unique_fb($array2D)
{
foreach ($array2D as $k=>$v)
{
$v = join(",",$v); //次元削減には、implode も使用できます。1 次元配列をカンマ接続の文字列に変換します。
$temp[$k] = }
$temp = array_unique($temp); //重複する文字列も削除します。これも繰り返しの 1 次元配列です。
foreach ($temp as $k => $v)
{
$array=explode(",",$v); //次に配列を分割します。
$temp2[$k]["id"] =$array[0]; k]["litpic"] =$array[1];
$temp2[$k]["タイトル"] =$array[2];
$temp2[$k]["アドレス"] = $array[3];
$temp2[$k]["開始時刻"] =$array[4];
$temp2[$k]["終了時刻"] =$array[5]; >$temp2[$k]["クラスID"] =$array[6];
$temp2[$k]["ename"] =$array[7];
}
return $temp2 ;
}
以上です。
2 次元配列の重複排除
コードは次のとおりです: $arr = array(
array('id' => 1,'name' => 'aaa'),array('id' => 2,'name' => 'bbb ')、
array('id' => 3,'name' => 'ccc')、
array('id' => 4,'name' => 'ddd') ,
array('id' => 5,'name' => 'ccc'),
array('id' => 6,'name' => 'aaa'),
array ('id' => 7,'name' => 'bbb'),
);
function assoc_unique(&$arr, $key)
{
$rAr =array( );
for($i=0;$i
if(!isset($rAr[$arr[$i][$ key]] ))
{
$rAr[$arr[$i][$key]]=$arr[$i]
}
}
$arr=array_values( $rAr) ;
}
assoc_unique(&$arr,'name')
;