> 백엔드 개발 > PHP 문제 > PHP에서 2차원 배열을 1차원 배열로 변환하는 방법

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

PHPz
풀어 주다: 2023-04-27 09:39:58
원래의
788명이 탐색했습니다.

PHP 프로그래밍에서는 2차원 배열을 1차원 배열로 변환해야 하는 경우가 종종 있습니다. 이러한 상황은 데이터 처리와 논리 처리 모두에서 일반적입니다. 그렇다면 2차원 배열을 1차원 배열로 변환하는 방법은 무엇일까요? 이 기사에서는 몇 가지 간단한 구현 방법을 소개합니다.

시나리오 분석

먼저 간단한 예를 살펴보겠습니다. 예를 들어 2차원 배열이 있습니다.

$data = array(
    array('id' => 1, 'name' => '张三', 'age' => 20),
    array('id' => 2, 'name' => '李四', 'age' => 22),
    array('id' => 3, 'name' => '王五', 'age' => 25)
);
로그인 후 복사

이 2차원 배열을 1차원 배열로 변환해야 합니다. 1차원 배열의 키 이름은 다음과 같습니다. 2차원 배열이고 키 값은 2차원 배열의 각 요소의 ID입니다. 이것을 달성하는 방법은 무엇입니까?

해결 방법

방법 1: 루프 순회 사용

이를 구현하는 가장 간단한 방법은 루프 순회를 사용하는 것입니다. 구체적인 구현 과정은 다음과 같습니다.

$result = array();
foreach ($data as $item) {
    $result[$item['id']] = $item['name'];
}
로그인 후 복사

위 코드를 설명하세요. 먼저 변환된 1차원 배열을 저장하기 위해 $result라는 배열을 정의합니다. 그런 다음 foreach 루프를 사용하여 2차원 배열 $data를 순회합니다. $item은 2차원 배열의 각 요소를 나타냅니다. 각 순회에서는 $item 배열의 'id' 키를 1차원 배열의 키로, $item 배열의 'name' 키를 1차원 배열의 키로 사용하여 저장합니다. $result 배열에 있습니다.

마지막으로 $result의 내용은 다음과 같습니다.

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

방법 2: array_map 및 array_column 함수 사용

또 다른 구현 방법은 PHP 내장 함수 array_map 및 array_column을 사용하는 것입니다. 구체적인 구현 코드는 다음과 같습니다.

$result = array_map(function($v){return [$v['id'] => $v['name']];}, $data);
$result = array_merge(...$result);
로그인 후 복사

위 코드는 2차원 배열의 요소를 새로운 배열로 처리하는 익명 함수를 구현합니다. 배열의 키 이름은 'id'이고 키 값은 ''입니다. 이름'. 이는 2차원 배열을 여러 개의 1차원 배열을 포함하는 배열로 변환합니다.

다음으로 array_merge 함수를 사용하여 여러 개의 1차원 배열을 하나의 1차원 배열로 병합합니다. 이때 새로운 1차원 배열에는 원래의 키 값뿐만 아니라 중복된 인덱스 값도 포함됩니다. 우리가 원하는 1차원 배열을 얻기 위해 php5.6의 새로운 "확장 연산자(...)"를 사용하여 중복된 인덱스 값을 제거합니다.

마지막으로 $result의 내용은 다음과 같습니다.

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

방법 3: array_reduce 함수 사용

array_reduce 함수를 사용하면 2차원 배열을 1차원 배열로 변환해야 한다는 필요성도 인식할 수 있습니다. 구현 코드는 다음과 같습니다.

$result = array_reduce($data, function($carry, $item){
    $carry[$item['id']] = $item['name'];
    return $carry;
}, array());
로그인 후 복사

위 코드에서는 array_reduce 함수를 사용하여 $data 배열의 각 요소를 왼쪽에서 오른쪽으로 새로운 단일 값으로 "병합"합니다. 초기값은 빈 배열입니다.

각 반복에서 $item 배열의 'id' 키를 1차원 배열의 키로 사용하고 $item 배열의 'name' 키를 1차원 배열의 키로 사용합니다. 배열의 $carry에 저장합니다. 결국 $carry의 내용은 우리가 원하는 1차원 배열입니다.

마지막으로 $result의 내용은 다음과 같습니다.

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
로그인 후 복사
로그인 후 복사
로그인 후 복사

응용 시나리오

2차원 배열을 1차원 배열로 변환하는 것은 데이터 처리 시나리오에서 일반적입니다. 예를 들어, 데이터베이스에서 쿼리한 결과 집합은 2차원 배열일 수 있으며, 1차원 배열로 특정 열만 필요합니다. 이 경우 2차원 배열을 변환해야 합니다. 1차원 배열.

동시에 논리 처리에서는 데이터 스크리닝 및 처리를 용이하게 하기 위해 복잡한 2차원 배열을 1차원 배열로 단순화해야 하는 경우가 있습니다.

요약

이 글에서는 2차원 배열을 1차원 배열로 변환하는 세 가지 방법, 즉 루프 순회 사용, array_map 및 array_column 함수 사용, array_reduce 함수 사용을 소개합니다. 각 방법에는 고유한 구현 방법과 장점이 있으며 다양한 시나리오와 요구 사항에 따라 선택하고 사용할 수 있습니다. 이러한 방법을 이해하고 익히면 효율적이고 간결하며 우아한 PHP 프로그램을 작성하는 데 도움이 됩니다.

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

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