ホームページ  >  記事  >  php教程  >  PHPで配列から重複要素を削除するためのいくつかの手順

PHPで配列から重複要素を削除するためのいくつかの手順

WBOY
WBOYオリジナル
2016-06-13 12:25:38963ブラウズ

例:

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


$test_array=array(1,2,3,4) ,4,5 ,5,6);
$test_array_unique=array_unique($test_array);
$test_array=array(1,2,3,4,4,5); ,5,6 );
$test_array_unique=array_unique($test_array);

しかし、まだ終わっていないので油断しないでください。よく見ると、繰り返しの要素は削除されていますが、残りの要素のインデックスは変更されていないことがわかります。この場合、for ループを使用してこの配列要素を呼び出すと、エラーが発生します。 for ループは次のものに基づいています。数は増加しており、ほとんどの人は配列のサイズを取得するために count($test_array_unique) を使用します。これにより、一部の要素が欠落します。


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

$test_array=array(1,2,3,4,4,5,5,6);

$test_array_unique=array_unique ($test_array);
for ($i=0;$i{
echo $test_array_unique[$i]
}
$ test_array=array(1,2,3 ,4,4,5,5,6);
$test_array_unique=array_unique($test_array);
for($i=0;$i{
echo $test_array_unique[$i];
}

この方法では、要素 6 は出力されません。これは、6 のインデックスが 8 であるためです。処理前の配列と処理後の配列インデックスは変更されません。
解決策:

もちろん、ここでは比較的単純だと思うメソッドのみを紹介しました。それは関数 array_values です。 array_values は配列の値を返し、インデックスとは何の関係もありません。この処理の後、数値的に増加するインデックスに従って新しい配列が形成され、for ループを使用してエッジ、すべてが出力されます。大丈夫ですよ!


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

$test_array=array(1,2,3,4,4, 5,5 ,6);

$test_array_unique=array_values(array_unique($test_array));
for($i=0;$i{
echo $ test_array_unique[$i];
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。