>  기사  >  백엔드 개발  >  PHP 배열 키-값 교환: 어떤 솔루션이 가장 효율적인가요?

PHP 배열 키-값 교환: 어떤 솔루션이 가장 효율적인가요?

WBOY
WBOY원래의
2024-05-02 21:39:02975검색

PHP 키-값 교환 배열을 위한 최상의 솔루션은 array_flip()입니다. 가장 효율적이고 임시 변수 생성이 필요하지 않기 때문입니다. 다른 솔루션은 어레이 유형 및 요구 사항에 따라 효율성이 떨어집니다.

PHP 数组键值互换:哪种方案效率最高?

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 的内置函数,无需创建任何临时变量。

方案 2array_combine() 的效率低于 array_flip(),因为它需要两个单独的数组才能进行组合。

方案 3:自定义函数的效率低于 array_flip(),因为它需要使用循环遍历数组。

方案 4:解构的效率与 array_flip() 相同,但它只有在需要翻转复合数组(即包含数组作为值)时才有效。

因此,对于大多数用例,array_flip()

옵션 2🎜: array_combine()은 결합하려면 두 개의 개별 배열이 필요하기 때문에 array_flip()보다 효율성이 떨어집니다. 🎜🎜🎜옵션 3🎜: 사용자 정의 함수는 배열을 순회하는 데 루프가 필요하기 때문에 array_flip()보다 효율성이 떨어집니다. 🎜🎜🎜옵션 4🎜: 구조 분해는 array_flip()만큼 효율적이지만 복합 배열을 뒤집어야 하는 경우(예: 배열을 값으로 포함)에만 작동합니다. 🎜🎜따라서 대부분의 사용 사례에서 🎜array_flip()🎜은 배열을 키 값으로 바꾸는 가장 효율적인 방법입니다. 🎜

위 내용은 PHP 배열 키-값 교환: 어떤 솔루션이 가장 효율적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.