>백엔드 개발 >PHP 문제 >PHP에서 다차원 배열을 얻는 방법

PHP에서 다차원 배열을 얻는 방법

王林
王林원래의
2023-05-11 09:38:07912검색

PHP 프로그래밍에서 다차원 배열은 매우 일반적인 데이터 구조 중 하나입니다. 다차원 배열은 배열의 각 요소가 배열이기도 함을 의미합니다. 이러한 종류의 배열은 1차원 배열보다 더 구조적입니다. 다차원 배열을 연산할 때 값을 얻는 방법을 알아야 합니다. 이 기사에서는 다차원 배열을 얻는 방법을 소개합니다.

1. 기본 작업

2차원 배열의 값을 구하는 방법은 매우 간단합니다. 1차원 배열처럼 대괄호와 첨자를 사용하면 됩니다. 예를 들어 $arr0이면 배열의 첫 번째 요소에서 두 번째 값을 가져올 수 있습니다.

2. 루프 순회

다차원 배열이 2차원 이상인 경우 기본 연산의 사용이 매우 번거로워집니다. 이때 루프를 이용하면 다차원 배열의 값을 쉽게 순회하여 얻을 수 있습니다. 코드는 다음과 같이 구현됩니다.

foreach($arr as $key1=>$val1){
    foreach($val1 as $key2=>$val2){
        echo $arr[$key1][$key2];
    }
}

외부 루프에서 1차원 배열의 첨자와 값을 얻고, 내부 루프에 들어가면 2차원 배열의 첨자와 값을 얻는 것을 볼 수 있습니다. , 그런 다음 출력하십시오.

3. 재귀적 획득

다차원 배열의 차원이 많으면 루프 순회를 사용하는 것이 매우 번거로울 것입니다. 이때 재귀함수를 사용하여 다차원 배열의 값을 얻을 수 있습니다.

재귀 함수의 구현 방법은 현재 획득한 요소가 배열인지 확인하고, 그렇다면 마지막 차원의 값을 얻을 때까지 계속해서 재귀적으로 획득하는 것입니다. 샘플 코드는 다음과 같습니다.

function get_val($arr){
    foreach($arr as $val){
        if(is_array($val)){
            get_val($val);
        }else{
            echo $val;
        }
    }
}

보시다시피, 현재 획득한 값이 배열인지 먼저 확인합니다. 그렇다면 계속해서 재귀 함수를 호출하여 출력합니다. 이런 식으로 배열의 차원이 아무리 많아도 재귀 함수를 사용하여 배열 안의 값을 가져올 수 있습니다.

4. array_column 사용

PHP는 다차원 배열에서 지정된 열을 얻는 데 도움이 되는 array_column 함수를 제공합니다. 이 함수의 구문은 다음과 같습니다.

array_column($arr, $column_key [, $index_key]);

그 중 $arr 매개변수는 구하려는 값의 배열, $column_key 매개변수는 구하려는 열의 첨자, $index_key 매개변수는 새 배열의 첨자. $index_key를 지정하지 않으면 0부터 시작하는 숫자 인덱스가 사용됩니다.

샘플 코드는 다음과 같습니다.

$arr = array(
    array('id'=>1, 'name'=>'Tom', 'age'=>18),
    array('id'=>2, 'name'=>'Jerry', 'age'=>20),
    array('id'=>3, 'name'=>'Lucy', 'age'=>22)
);
$name_arr = array_column($arr, 'name');

위 코드에서는 array_column 함수를 사용하여 $arr 배열의 'name' 열을 가져옵니다. 마지막 $name_arr 배열은 배열에 있는 모든 이름의 모음입니다. 여기서 각 요소는 배열에 있는 각 요소의 'name' 값에 해당하는 문자열입니다.

요약:

PHP에서 다차원 배열을 얻는 것은 매우 기본적이고 중요한 작업입니다. 이 글의 소개를 통해 우리는 기본 연산, 루프 순회, 재귀적 획득, array_column 함수 등과 같은 여러 획득 방법을 알 수 있습니다. 다양한 획득 방법은 다양한 시나리오에 적합하며 실제 상황에 따라 선택하고 사용할 수 있습니다.

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

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