>  기사  >  백엔드 개발  >  PHP에서 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합하는 방법

PHP에서 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합하는 방법

WBOY
WBOY원래의
2023-07-07 16:12:231419검색

PHP에서 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합하는 방법

개발 중에 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합해야 하는 경우가 종종 있습니다. 이러한 요구는 데이터 작업 시, 특히 데이터베이스 결과 세트 작업 시 매우 일반적입니다. 이 기사에서는 이 기능을 수행하는 몇 가지 일반적인 방법을 소개하고 해당 코드 예제를 제공합니다.

방법 1: 루프 순회 사용

가장 간단한 방법은 루프를 사용하여 모든 배열을 순회하고 지정된 키 이름에 따라 해당 값을 새 배열에 추가하는 것입니다. 샘플 코드는 다음과 같습니다.

function mergeArrays($key, ...$arrays)
{
    $result = [];
    
    foreach ($arrays as $array) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
    }
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

위 코드를 실행하면 출력 결과는 다음과 같습니다.

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

방법 2: array_map 함수

array_map 함수를 사용하여 여러 배열에 콜백 함수를 적용하고 새 배열을 반환합니다. 이 함수를 사용하여 여러 배열을 병합할 수 있습니다. 샘플 코드는 다음과 같습니다.

function mergeArrays($key, ...$arrays)
{
    $callback = function ($array) use ($key) {
        return $array[$key] ?? null;
    };
    
    $result = array_map($callback, $arrays);
    
    return array_filter($result, function($value) {
        return $value !== null;
    });
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

위 코드를 실행하면 출력 결과는 다음과 같습니다.

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

방법 3: array_reduce 함수 사용

array_reduce 함수는 배열의 요소를 반복적으로 처리하는 데 사용되며 지정된 지침에 따라 처리합니다. 콜백 함수 및 최종 결과를 반환합니다. 이 함수를 사용하여 여러 배열을 병합할 수 있습니다. 샘플 코드는 다음과 같습니다.

function mergeArrays($key, ...$arrays)
{
    $callback = function ($result, $array) use ($key) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
        return $result;
    };
    
    $result = array_reduce($arrays, $callback, []);
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

위 코드를 실행하면 출력 결과는 다음과 같습니다.

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

위는 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합하는 몇 가지 일반적인 방법의 예입니다. 실제 상황에 따라 적절한 방법을 선택하면 코드의 효율성과 가독성을 크게 향상시킬 수 있습니다. 도움이 되었기를 바랍니다!

위 내용은 PHP에서 지정된 키 이름에 따라 여러 배열을 하나의 배열로 병합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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