ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列のキーと値の交換: どのソリューションが最も効率的ですか?
PHP 配列のキーと値の交換に最適なソリューションは array_flip() です。これは最も効率的で、一時変数の作成が必要ないためです。他のソリューションは、アレイのタイプと要件によっては効率が低くなります。
PHP 配列のキーと値の交換: 最も効率的なソリューションはどれですか。
PHP では、キーを交換する必要があります。配列の値ペア スワップする場合、効率が異なるいくつかの方法から選択できます。以下に、これらの方法の分析と、さまざまなシナリオのベスト プラクティスの推奨事項を示します。
オプション 1: array_flip()
<?php $array = ['a' => 1, 'b' => 2, 'c' => 3]; $flippedArray = array_flip($array); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
オプション 2: array_combine()
<?php $keys = ['a', 'b', 'c']; $values = [1, 2, 3]; $flippedArray = array_combine($values, $keys); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
オプション 3:関数定義
<?php function flipArray($array) { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; } $array = ['a' => 1, 'b' => 2, 'c' => 3]; $flippedArray = flipArray($array); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
オプション 4: 分解
<?php $array = ['a' => 1, 'b' => 2, 'c' => 3]; [$flippedArray] = [array_flip($array)]; print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
実用的なケース
次の内容を含むプログラムがあるとします。学生名と成績の配列:
<?php $students = [ 'Alice' => 90, 'Bob' => 85, 'Carol' => 95 ];
学生名を成績別に並べ替えるには、次のコードを使用できます:
<?php // 键值互换数组 $flippedStudents = array_flip($students); // 键(分数)排序 ksort($flippedStudents); // 获取排序的键(学生姓名) $sortedNames = array_keys($flippedStudents); print_r($sortedNames); // 输出: // [Bob, Alice, Carol]
効率分析
##オプション 1: array_flip() は PHP の組み込み関数であり、一時変数を作成する必要がないため、最も効率的です。
オプション 2: array_combine() は、結合するために 2 つの別々の配列が必要なため、
array_flip() よりも効率が低くなります。
オプション 3: カスタム関数の効率は、配列を走査するためにループを使用する必要があるため、array_flip() よりも低くなります。
オプション 4: 分割は array_flip() と同じくらい効率的ですが、複合配列を反転する必要がある場合 (つまり、値として配列が含まれている場合) にのみ機能します。 )。
array_flip() が配列のキーと値を交換する最も効率的なソリューションになります。
以上がPHP 配列のキーと値の交換: どのソリューションが最も効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。