PHP二次元配列の重複排除問題の解析

WBOY
リリース: 2016-06-13 12:06:51
オリジナル
914 人が閲覧しました

以前、配列の重複排除に関する記事を書きましたが、それは 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')

;

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート