以前、配列の重複排除に関する記事を書きましたが、それは 1 次元配列に限定されていました。次の関数は 2 次元配列に使用できます:
コードをコピーします コードは次のとおりです:
//2 次元配列から重複する値を削除します
function array_unique_fb($array2D)
{
foreach ($array2D as $v)
{
$v = join(",",$v); //次元を削減するために、implode を使用して 1 次元配列を次のように接続された文字列に変換することもできます。 commas
$temp[] = $v;
$temp = array_unique($temp); //繰り返しの文字列、つまり繰り返しの 1 次元配列を削除します
foreach ($temp as $k => $v)
{
$temp[$k] =explode( ",",$v); // 逆アセンブルした配列を再構築します
}
return $temp;
配列のキー値を保持したい場合は、次の関数を使用できます:
コードをコピー コードは次のとおりです:
//二次元配列は重複した値を削除し、キー値を保持しますfunction array_unique_fb($array2D)
{
foreach ($array2D as $k=>$v)
{
$v = join(",",$v); //次元削減のために、implode を使用して 1 次元配列を接続された文字列に変換することもできますカンマ付き
$temp[$k] = $v;
}
$temp = array_unique ($temp); // 重複する文字列、つまり重複する 1 次元配列を削除します
foreach ($temp as $k => $v)
{
$array=explode(",",$v); // 逆アセンブルされた配列を再アセンブル
$temp2[$k]["id"] =$array[$k]; ]["litpic"] =$array[1];
$ temp2[$k]["タイトル"] =$array[2];
$temp2[$k]["アドレス"] =$array[3] ;
$temp2[$k]["開始時間"] =$ 配列[4];
$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 ,'名前' => 'aaa'),
array('id' => 'bbb'),
関数 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, '名前');
print_r($arr)>
以上、PHP における 2 次元配列の配列重複排除の分析を、配列の側面も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。