PHP에서 2차원 배열을 1차원 배열로 변환하는 방법

PHPz
풀어 주다: 2023-04-23 10:29:16
원래의
1495명이 탐색했습니다.

일부 배열 처리 작업을 수행할 때 다차원 배열을 1차원 배열로 변환해야 하는 경우가 있습니다. 이 기사에서는 PHP에서 2차원 배열을 1차원 배열로 변환하는 몇 가지 방법을 소개합니다.

방법 1: 루프 순회

간단한 방법은 foreach 루프를 사용하여 2차원 배열을 순회하고 해당 요소를 1차원 배열에 추가하는 것입니다.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        foreach($v as $v2){
            $arr1[] = $v2;
        }
    }
    return $arr1;
}
로그인 후 복사

사용 예:

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
로그인 후 복사
로그인 후 복사

방법 2: 재귀

또 다른 일반적으로 사용되는 방법은 재귀를 사용하여 다차원 배열을 처리하고 이를 레이어별로 벗겨내어 1차원 배열로 만드는 것입니다.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        if(is_array($v)){
            $arr1 = array_merge($arr1,array2To1($v));
        }else{
            $arr1[] = $v;
        }
    }
    return $arr1;
}
로그인 후 복사

사용 예:

$arr2 = array(array(1,2),3,array(array(4,5),6),7);
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )
로그인 후 복사

방법 3: PHP 내장 함수 사용

PHP는 array_reduce(), array_merge_recursive() 및 call_user_func_array() 등을 포함하여 다차원 배열을 처리하는 몇 가지 내장 함수를 제공합니다.

function array2To1($arr2){
    return call_user_func_array('array_merge_recursive', $arr2);
}
로그인 후 복사

사용 예:

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
로그인 후 복사
로그인 후 복사

실제 테스트에 따르면 3번 방법을 사용하는 것이 시간이 더 많이 소요되므로 대규모 배열을 처리할 때는 이 방법을 권장하지 않습니다.

요약:

각 방법에는 고유한 장점과 단점이 있으며 궁극적으로 어떤 방법을 선택할지는 특정 요구 사항과 시나리오에 따라 다릅니다. 이 글이 여러분에게 도움이 되기를 바랍니다. 더 좋은 방법이 있다면 댓글란에 공유해주세요.

위 내용은 PHP에서 2차원 배열을 1차원 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿