PHP에서는 종종 두 개의 배열을 연관 배열로 결합해야합니다. 일반적으로 두 개의 배열이있는 경우 하나는 "키"어레이이고 다른 하나는 "값"배열이므로 Array_combine 함수를 통해 쉽게이를 달성 할 수 있습니다. 이 기능은 간결하고 우아하며 데이터 구조의 변환 및 매핑에 매우 적합합니다.
array_combine 함수는 두 배열을 매개 변수로 받아들입니다. 첫 번째 배열은 새 배열의 키로, 두 번째 배열은 값으로 값으로 만듭니다. 이 함수는 새로운 연관 배열을 반환하며, 여기서 첫 번째 배열의 요소가 키가되고 두 번째 배열의 요소가 값이됩니다.
array_combine(array $keys, array $values): array|false
$ 키 : 새 배열로 사용되는 키.
$ 값 : 새 배열의 값으로 사용됩니다.
$ 키 와 $ 값 의 요소 수가 일치하지 않으면 함수가 False를 반환합니다.
색상 이름이 포함 된 두 개의 배열이 있고 다른 하나는 이러한 색상의 해당 코드를 포함한다고 가정합니다.
$colors = ['red', 'green', 'blue'];
$hex_codes = ['#FF0000', '#00FF00', '#0000FF'];
$result = array_combine($colors, $hex_codes);
print_r($result);
출력 결과 :
Array
(
[red] => #FF0000
[green] => #00FF00
[blue] => #0000FF
)
이 예에서 Array_combine은 $ colors 배열의 요소를 새 배열의 키로, $ hex_codes 배열의 요소를 값으로 사용하여 색상과 해당 16 진수 값을 포함하는 연관 배열을 반환합니다.
두 배열의 길이가 일치하지 않으면 Array_combine은 False를 반환합니다. 예를 들어:
$keys = ['name', 'age'];
$values = ['John'];
$result = array_combine($keys, $values);
if ($result === false) {
echo "일관되지 않은 배열 길이,합병 할 수 없습니다!";
}
산출:
일관되지 않은 배열 길이,합병 할 수 없습니다!
이것은 두 배열의 길이가 같은지 확인하도록하는 간단한 오류 처리 예입니다.
URL 세트와 해당 제목이 있다고 가정하면 Array_combine 함수를 사용하여 연관 배열로 변환 할 수 있습니다. 그리고 당신이 요청했듯이, 우리는 모든 URL 도메인을 m66.net 으로 교체해야합니다.
$urls = ['http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3'];
$titles = ['Page 1', 'Page 2', 'Page 3'];
// 바꾸다 URL 도메인 이름은입니다 m66.net
$modified_urls = array_map(function ($url) {
return preg_replace('/http:\/\/[^\/]+/', 'http://m66.net', $url);
}, $urls);
$result = array_combine($modified_urls, $titles);
print_r($result);
산출:
Array
(
[http://m66.net/page1] => Page 1
[http://m66.net/page2] => Page 2
[http://m66.net/page3] => Page 3
)
이 예에서는 먼저 Array_Map 및 정규식을 사용하여 모든 URL의 도메인 이름을 M66.NET 으로 바꾸고 Array_Combine을 사용하여 수정 된 URL을 제목과 새로운 연관 배열에 페어링합니다.
Array_combine은 두 배열을 연관 배열로 신속하게 결합하는 데 도움이되는 매우 실용적인 PHP 기능입니다. 단순성과 효율성은 데이터를 처리 할 때 매우 인기가 있습니다. 사용할 때는 두 배열의 길이가 같은지 확인해야합니다. 그렇지 않으면 거짓이 됩니다. 또한 Array_Map 과 같은 다른 PHP 함수와 결합하여 URL 도메인 이름을 교체하는 등 배열을 병합하기 전에 데이터에 대해 일부 사용자 정의 처리를 수행 할 수도 있습니다.
이러한 방법을 통해 데이터 구조 변환을 실현할 수있을뿐만 아니라 코드를보다 간결하고 우아하게 만들어 번거로운 수동 처리 프로세스를 줄일 수 있습니다.