PHP에는 배열 키 값의 교환을 구현할 수있는 몇 가지 공통 방법이 있습니다. 다른 방법은 다른 시나리오에 적응하고 올바른 알고리즘을 선택하면 프로그램의 성능이 향상 될 수 있습니다.
Array_flip ()는 배열 키 값 인터체인지 용으로 설계된 기능이며 성능이 뛰어납니다. 배열이 커지면 최선의 선택입니다.
$new_array = array_flip($old_array);
키-값 스왑은 배열을 수동으로 통과하여 수행됩니다. 이 방법은 유연하며 특히 배열이 작거나 키 값이 특정 관계가있는 경우 다양한 시나리오에 적합 할 수 있습니다.
$new_array = [];
foreach ($old_array as $key => $value) {
$new_array[$value] = $key;
}
이 방법은 키와 값을 다른 배열로 별도로 추출하고 Array_combine ()을 사용하여 재결합하여 수행됩니다. 핵심 값이 관련된 시나리오에 적합합니다.
$keys = array_keys($old_array);
$values = array_values($old_array);
$new_array = array_combine($values, $keys);
다양한 알고리즘의 선택은 주로 배열의 크기, 키 유형 및 핵심 값 간의 관계를 포함하여 다양한 요인에 영향을받습니다.
더 큰 배열의 경우 array_flip ()는 최적의 성능을 제공합니다. 자체 쓰기 루프는 작은 어레이를 처리하는 데 적합합니다.
배열의 키가 문자열 인 경우 키 값을 스왑하는 작업이 느려집니다. 대조적으로, 숫자 키 교환이 더 빠릅니다.
배열의 키와 값 사이에 특별한 관계가있는 경우 (예 : 키는 숫자 값이고 값은 문자열이라면) 자체 발작 루프 또는 Array_combine ()이 더 적합합니다.
$old_array = ['foo' => 1, 'bar' => 2];
// 자체 쓰기 루프를 사용하여 주요 값의 효율적인 교환
$new_array = [];
foreach ($old_array as $key => $value) {
$new_array[$value] = $key;
}
$old_array = ['John' => 'Doe', 'Jane' => 'Smith'];
// 사용 array_flip() 최고의 성능을 얻으십시오
$new_array = array_flip($old_array);
$old_array = [1 => 'foo', 2 => 'bar', 3 => 'baz'];
// 사용 array_combine() 그리고 array_values() 키 가치 상관 관계를 보존하십시오
$keys = array_keys($old_array);
$values = array_values($old_array);
$new_array = array_combine($values, $keys);
이 기사는 PHP 배열의 키 가치 교환을위한 몇 가지 공통 알고리즘을 소개하고 성능 영향 요인을 분석합니다. 실제 조건에 따라 적절한 알고리즘을 선택하면 코드 실행 효율이 크게 향상 될 수 있습니다.