>백엔드 개발 >PHP 문제 >PHP의 2차원 배열을 지정된 키 값으로 변환하는 방법

PHP의 2차원 배열을 지정된 키 값으로 변환하는 방법

PHPz
PHPz원래의
2023-04-27 09:03:58942검색

PHP의 2차원 배열은 많은 양의 데이터를 저장하는 데 사용할 수 있는 매우 일반적인 데이터 구조이며 매우 유연합니다. 일반적으로 2차원 배열을 처리할 때 특정 조건에 따라 특정 요소를 필터링하거나 이러한 요소의 구조를 재구성해야 합니다. 이 경우 2D 배열을 다른 형태로 변환하는 것이 매우 유용할 수 있습니다. 이 기사에서는 PHP의 배열 함수를 사용하여 2차원 배열을 지정된 키 값 형식으로 변환하는 방법을 소개합니다.

1. 2차원 배열이란?

2차원 배열은 여러 개의 1차원 배열로 구성된 데이터 구조입니다. 각 행은 1차원 배열을 나타내고 열은 1차원 배열의 요소를 나타내는 테이블로 생각할 수 있습니다.

예를 들어 다음 코드는 2차원 배열을 만듭니다.

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

이 배열에는 두 개의 요소가 포함되어 있으며, 각 요소는 두 개의 키 "name"과 "age" 및 해당 값을 포함하는 1차원 배열입니다. 이 2차원 배열은 한 그룹의 사람들의 이름과 나이 정보를 나타낼 수 있습니다.

2. 2차원 배열 변환

  1. 1차원 배열을 키-값 쌍으로 변환

2차원 배열을 처리하기 전에 먼저 1차원 배열을 변환하는 방법을 살펴보겠습니다. 지정된 키-값 쌍 형식으로 변환됩니다. PHP는 이 함수를 구현하기 위해 매우 실용적인 함수 array_column()을 제공합니다. array_column() 함수는 다차원 배열에서 지정된 열을 제거하고 해당 열의 값을 반환할 수 있습니다. 예:

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

$names = array_column($data, "name");
print_r($names);

출력:

Array
(
    [0] => Tom
    [1] => Jerry
)

위 코드에서는 array_column() 함수를 사용하여 $data 배열의 "name" 열을 추출하고 이를 새 배열 $names에 저장합니다. 이런 식으로 우리는 모든 이름 정보를 쉽게 얻을 수 있습니다.

  1. 2차원 배열을 지정된 키 값 형식으로 변환

실제 개발에서는 보통 연령별로 분류하거나, 첫 번째부터 정렬하는 등 다양한 조건에 따라 2차원 배열을 구성해야 합니다. 이름 등의 문자 현재 이 목표를 달성하기 위해 PHP의 배열 함수를 사용할 수 있습니다. 아래에서는 일반적으로 사용되는 몇 가지 방법을 소개합니다.

(1) array_reduce() 함수 사용

array_reduce() 함수는 배열의 모든 요소에 대해 누적 계산을 수행하고 결과를 반환할 수 있습니다. 이 함수를 사용하면 지정된 키 값에 따라 2차원 배열의 요소를 결합할 수 있습니다.

예를 들어 위의 $data 배열을 "age" 값에 따라 분류하려면 다음 코드를 사용할 수 있습니다.

$result = array_reduce($data, function ($acc, $item) {
    $age = $item['age'];
    if (!isset($acc[$age])) {
        $acc[$age] = array();
    }
    $acc[$age][] = $item;
    return $acc;
}, array());

print_r($result);

출력:

Array
(
    [20] => Array
        (
            [0] => Array
                (
                    [name] => Tom
                    [age] => 20
                )

        )

    [18] => Array
        (
            [0] => Array
                (
                    [name] => Jerry
                    [age] => 18
                )

        )

)

위 코드에서는 PHP 익명 함수를 사용하고 array_reduce() 함수. 익명 함수의 첫 번째 매개변수 $acc는 누적된 결과를 저장하는 데 사용되는 누산기를 나타내고, 두 번째 매개변수 $item은 배열의 각 요소를 나타냅니다. 함수 본문에서는 먼저 요소의 "age" 값을 가져온 다음 "age" 값에 해당하는 배열이 이미 누산기에 존재하는지 확인하고, 마지막으로 새 배열을 만듭니다. 이 배열의 요소입니다.

(2) array_map() 함수 사용

array_map() 함수는 배열의 각 요소를 처리하고 새 배열을 반환할 수 있습니다. 이 함수를 사용하면 지정된 키 값에 따라 2차원 배열의 요소를 수정할 수 있습니다.

예를 들어, 다음 코드는 위의 $data 배열에 있는 각 요소의 "name" 키 값을 요소의 "age" 값으로 변경하고 이를 새 배열에 저장합니다.

$result = array_map(function ($item) {
    $age = $item['age'];
    $item['name'] = $age;
    return $item;
}, $data);

print_r($result);

출력:

Array
(
    [0] => Array
        (
            [name] => 20
            [age] => 20
        )

    [1] => Array
        (
            [name] => 18
            [age] => 18
        )

)

In 위 코드에서는 PHP 익명 함수와 array_map() 함수를 사용했습니다. 익명 함수의 $item 매개변수는 배열의 각 요소를 나타냅니다. 함수 본문에서는 먼저 요소의 "age" 값을 가져온 다음 해당 값을 요소의 "name" 키에 할당합니다.

3. 요약

위는 PHP에서 2차원 배열을 지정된 키 값으로 변환하는 방법입니다. 요약하자면:

  1. 1차원 배열을 지정된 키 값으로 변환하려면 array_column() 함수를 사용하세요. 값 쌍 형태.
  2. 지정된 키 값에 따라 2차원 배열을 결합하려면 array_reduce() 함수를 사용하세요.
  3. 지정된 키 값에 따라 2차원 배열의 요소를 수정하려면 array_map() 함수를 사용하세요.

실제 개발에서는 다양한 비즈니스 요구 사항을 충족하기 위해 2차원 배열의 요소를 처리하는 적절한 방법을 선택할 수 있습니다.

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

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