> 백엔드 개발 > PHP 문제 > PHP 2차원 배열을 1차원 숫자로

PHP 2차원 배열을 1차원 숫자로

WBOY
풀어 주다: 2023-05-11 09:45:50
원래의
554명이 탐색했습니다.

PHP는 웹 개발, 특히 백엔드 개발에 널리 사용되는 인기 있는 스크립팅 언어입니다. PHP 개발에서 배열은 매우 일반적인 데이터 유형입니다. 개발 과정에서 가끔 2차원 배열을 1차원 배열로 변환해야 하는 경우가 있는데, 이는 기본적인 배열 조작 기술이기도 합니다. 이번 글에서는 PHP를 이용하여 2차원 배열을 1차원 배열로 변환하는 방법을 설명하겠습니다.

1. 2차원 배열이란 무엇인가요?

PHP에서 배열은 순서가 지정된 요소 모음이며, 각 요소에는 해당 요소에 액세스하는 데 사용할 수 있는 고유한 키(키)가 있습니다. 2차원 배열은 배열 내에 중첩된 하나 이상의 배열을 나타냅니다. 이러한 중첩 배열은 동일한 유형의 배열이거나 다른 유형의 배열일 수 있습니다. PHP에서는 중첩 배열을 사용하여 행렬, 트리 등과 같은 다차원 데이터 구조를 나타낼 수 있습니다.

다음은 2차원 배열의 예입니다.

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);
로그인 후 복사

2. 2차원 배열을 1차원 배열로 변환해야 하는 이유는 무엇인가요?

개발 과정에서 2차원 배열을 1차원 배열로 변환해야 하는 경우가 있습니다. 다음은 몇 가지 실제 예입니다.

  1. 데이터베이스 쿼리 결과 변환

PHP를 사용하여 데이터베이스를 쿼리할 때 쿼리 결과는 일반적으로 2차원 배열 형식으로 반환됩니다. 쿼리 결과에 대해 통계나 정렬 작업을 수행하려면 2차원 배열을 1차원 배열로 변환해야 할 수도 있습니다. 예를 들어 학생의 평균 점수를 쿼리할 경우 중첩된 2차원 배열을 1차원 배열로 변환한 후 평균 점수를 계산해야 합니다.

  1. JSON 데이터 처리

JSON 형식의 데이터를 사용할 때 사용 편의성을 위해 중첩된 2차원 배열을 1차원 배열로 변환해야 하는 경우가 있습니다.

  1. 배열 작업 단순화

일부 간단한 배열 작업의 경우 1차원 배열을 사용하는 것이 더 간단하고 효율적이며 이해하기 쉽습니다. 예를 들어, 1차원 배열을 사용하여 학생의 점수를 저장하면 정렬, 검색, 바꾸기 등의 작업을 더 쉽게 수행할 수 있습니다.

3. 2차원 배열을 1차원 배열로 변환하는 방법은 무엇인가요?

PHP에는 2D 배열을 1D 배열로 변환하는 방법이 여러 가지 있습니다. 다음은 몇 가지 구현 방법입니다.

  1. foreach 루프 구현 사용

PHP의 foreach 루프 구조를 사용하여 2차원 배열을 순회하고 각 요소를 1차원 배열에 삽입할 수 있습니다. 다음은 샘플 코드입니다.

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$flat_students = array(); // 定义一个空的一维数组

foreach ($students as $items) { // 遍历二维数组
    foreach ($items as $key => $value) { // 遍历内层数组
        $flat_students[$key][] = $value; // 将元素插入到一维数组中
    }
}

print_r($flat_students); // 输出一维数组
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => Array
        (
            [0] => 张三
            [1] => 李四
            [2] => 王五
        )

    [age] => Array
        (
            [0] => 20
            [1] => 21
            [2] => 22
        )

    [score] => Array
        (
            [0] => 80
            [1] => 85
            [2] => 90
        )

)
로그인 후 복사
  1. array_column() 함수를 사용하여 구현

PHP에서는 키 이름에 해당하는 값을 추출할 수 있는 array_column() 함수를 제공합니다. 2차원 배열을 반환하고 1차원 배열을 반환합니다. 다음은 샘플 코드입니다.

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$names = array_column($students, 'name');
$ages = array_column($students, 'age');
$scores = array_column($students, 'score');

print_r($names); // 输出一维数组
print_r($ages); // 输出一维数组
print_r($scores); // 输出一维数组
로그인 후 복사

출력은 다음과 같습니다.

Array
(
    [0] => 张三
    [1] => 李四
    [2] => 王五
)
Array
(
    [0] => 20
    [1] => 21
    [2] => 22
)
Array
(
    [0] => 80
    [1] => 85
    [2] => 90
)
로그인 후 복사
  1. array_reduce() 함수 사용

PHP의 array_reduce() 함수는 배열 요소를 반복하여 단일 값으로 줄일 수 있습니다. 그런 다음 값이 반환되었습니다. 2차원 배열을 1차원 배열로 변환할 수 있습니다. 다음은 샘플 코드입니다.

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$keys = array('name', 'age', 'score');

$flat_students = array_reduce($students, function ($result, $item) use ($keys) {
    foreach ($keys as $key) {
        $result[$key][] = $item[$key];
    }
    return $result;
}, array());

print_r($flat_students); // 输出一维数组
로그인 후 복사

출력 결과는 첫 번째 방법과 동일합니다.

IV. 요약

이 글에서는 foreach 루프, array_column() 함수, array_reduce() 함수 등을 사용하여 PHP에서 2차원 배열을 1차원 배열로 변환하는 여러 가지 방법을 소개합니다. 실제 필요에 따라 다양한 방법을 선택할 수 있습니다. 이러한 기술을 익히면 배열 데이터를 보다 효율적으로 처리하고 코딩 효율성을 향상시킬 수 있습니다.

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

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