PHPアレイ操作では、 array_flip()とarray_values()は2つの非常に強力な関数です。混乱を招く、不規則な、または再構築する必要がある配列を扱っている場合、これら2つの機能の組み合わせにより、予期しない効率の向上が得られます。
この記事では、これら2つの機能を組み合わせて使用して、PHPアレイの構造と形式をすばやく再構築する方法を紹介します。
array_flip()の目的は、配列のキーと値を交換することです。これは、値によってキーを見つける必要があるいくつかのシナリオで非常に役立ちます。
$input = ['a' => 'apple', 'b' => 'banana'];
$result = array_flip($input);
// 結果: ['apple' => 'a', 'banana' => 'b']
注:配列の値が一意でない場合、 array_flip()は、重複値に対応するキーをオーバーライドします。
array_values()は、インデックス配列を再構築し、0からのインデックスキーとして配列の値を変更することです。
$input = ['first' => 'apple', 'second' => 'banana'];
$result = array_values($input);
// 結果: ['apple', 'banana']
重複排除、インデックスを再配置し、配列形式の標準化する必要がある場合、 array_flip()とarray_values()を組み合わせると非常に便利です。
ユーザーフォームからタグの配列を受け取るとします。
$tags = ['php', 'html', 'css', 'php', 'javascript', 'html'];
あなたが願っています:
複製を削除します
キー値を0から増分に並べ替えます
あなたはこれを行うことができます:
$uniqueTags = array_values(array_flip(array_flip($tags)));
最初のarray_flip($ tags) :タグをキーとして使用して、重複した値を削除します。
2番目のarray_flip(...) :元の「値」を復元しますが、重複排除されています。
最後のarray_values(...) :キーを数値インデックスに再構築します。
最終結果:
['php', 'html', 'css', 'javascript']
清潔で重複排除、きちんとした索引付け!
たとえば、URLパラメーターから一連のオプションを受け取っているとします。
https://m66.net/filter.php?tags[]=php&tags[]=php&tags[]=mysql&tags[]=laravel
処理コードは次のとおりです。
$tags = $_GET['tags'] ?? [];
$cleanTags = array_values(array_flip(array_flip($tags)));
これにより、 $ CleanTags変数に重複排除タグが含まれ、標準のインデックスアレイに含まれることが保証されます。
array_flip()を使用すると、キーの一意性を巧みに利用して重複排除を実現できます。
次に、 array_values()を使用して、クリーンインデックスアレイに復元します。
組み合わせて使用され、重複したデータの処理と配列構造のフォーマットに非常に効率的です。
ユーザー入力の処理、構成オプション、ラベルデータなどのシナリオでの使用に特に適しています。
これらの2つの関数の組み合わせにより、コードがより簡潔になるだけでなく、 ForeachやIN_ARRAY()などの関数への依存度も低下させ、パフォーマンスと読みやすさが向上します。