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에 내장된 기능이므로 임시 변수를 생성할 필요가 없습니다. <code>array_flip()
效率最高,因为它是 PHP 的内置函数,无需创建任何临时变量。
方案 2:array_combine()
的效率低于 array_flip()
,因为它需要两个单独的数组才能进行组合。
方案 3:自定义函数的效率低于 array_flip()
,因为它需要使用循环遍历数组。
方案 4:解构的效率与 array_flip()
相同,但它只有在需要翻转复合数组(即包含数组作为值)时才有效。
因此,对于大多数用例,array_flip()
array_combine()
은 결합하려면 두 개의 개별 배열이 필요하기 때문에 array_flip()
보다 효율성이 떨어집니다. 🎜🎜🎜옵션 3🎜: 사용자 정의 함수는 배열을 순회하는 데 루프가 필요하기 때문에 array_flip()
보다 효율성이 떨어집니다. 🎜🎜🎜옵션 4🎜: 구조 분해는 array_flip()
만큼 효율적이지만 복합 배열을 뒤집어야 하는 경우(예: 배열을 값으로 포함)에만 작동합니다. 🎜🎜따라서 대부분의 사용 사례에서 🎜array_flip()
🎜은 배열을 키 값으로 바꾸는 가장 효율적인 방법입니다. 🎜위 내용은 PHP 배열 키-값 교환: 어떤 솔루션이 가장 효율적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!