일부 배열 처리 작업을 수행할 때 다차원 배열을 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!