ホームページ  >  記事  >  バックエンド開発  >  php array_flip() と array_uniqure() は array_PHP チュートリアルから重複要素を削除します

php array_flip() と array_uniqure() は array_PHP チュートリアルから重複要素を削除します

WBOY
WBOYオリジナル
2016-07-13 16:57:411222ブラウズ

PHPで配列から重複要素を削除する関数はarray_unique()関数とarray_flip()関数とarray_uniqure()関数がありますが、後者の方が前者よりも数倍性能が高いので、以下のみ紹介します。配列要素を削除するには 2 つを繰り返します。

方法は次のとおりです。

コードは次のとおりです コードをコピー

$arr = array(…………) ;// 1 万個の要素を含む配列があり、その中に重複した要素があるとします。


$arr = array_flip(array_flip($arr)); // これにより、重複した要素が削除されます。


一体何が起こっているのでしょうか? array_flip() の関数を見てみましょう: array_flip() は、次のように配列の各要素のキーと値を交換するために使用されます:

コードは次のとおりです コードをコピー


$arr1 = array("年齢" => 30, "名前" => 'ハッピー ガーデン');


$arr2 = array_flip($arr1); // $arr2 は array(30 => "年齢", 'ハッピー ガーデン' => "名前");


PHP 配列では、異なる要素が同じ値を取ることができますが、次のような異なる要素で同じキー名を使用することはできません。

コードは次のとおりですコードをコピー

$arr1 = array("age" => 30, "name" => 'ハッピー ガーデン', "age" => 20); "age" => 2 0 は "age" => 30 に置き換えられます。

$arr1 = array("名前" => 'ハッピー ガーデン', "年齢" => 45);

ここで、$arr1 と $arr2 は等しいです。

したがって、array_flip(array_flip($arr)) が配列内の重複要素を削除できる理由がわかります。まず、$arr の値がキー名になります。これは、値がキー名になった後、重複したキー名になり、PHP エンジンは重複したキー名を削除し、最後のキー名のみを保持します。 1つ。 。例:

コードは次のとおりですコードをコピー
$arr1 = array("年齢" => 30, "名前" => 'ハッピー ガーデン', "年齢" => 20);

$arr1 = array_flip($arr1); // $arr1 は array("ハッピー ガーデン" => "名前", 20 => "年齢");

// $arr1 のキー名と値を復元します:

$arr1 = array_flip($arr1);

上記のコードは、より簡潔に記述することができます: $arr1 = array_flip(array_flip($arr1));


いくつかのカスタム関数

//配列内の重複要素を削除する関数

コードは次のとおりですコードをコピー関数 delmember(&$array, $id)
{
$サイズ = カウント($配列); for($i = 0; $i {
$array[$id + $i] = $array[$id + $i + 1]; }
unset($array[$size - 1]); }



//使用例:

コードは次のとおりです コードをコピー

$output = array(1, 2, 2, 'www.bKjia.c0m', 5, 4, 4, 4, 2, 7, 5, 9, 10); delsame($output); while(list($key, $value) = each($output))
{
echo "$key:$value"."
"; }
//方法 2

関数 uniquearray($array)

{

// 配列内のキーとして一意の elt を取得します

for ($i=0,$n=count($array, 1);$i $u_array[$array[$i]] = 1;

// キーのみを別の配列にコピーします

reset($u_array, 1);

for ($i=0,$n=count($u_array, 1);$i $unduplicated_array[] = key($u_array, 1);

next($u_array, 1);

}

$unduplicated_array を返す;

}

http://www.bkjia.com/PHPjc/631495.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631495.html技術記事 PHPで配列から重複要素を削除する関数はarray_unique()関数とarray_flip()関数、array_uniqure()関数がありますが、後者の方が数倍高性能なので紹介するだけです。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。