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

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

PHPz
PHPz원래의
2023-04-23 16:47:001202검색

PHP로 개발을 하다 보면 2차원 배열을 1차원 배열로 변환해야 하는 경우가 많습니다. 이 요구 사항은 실제 개발에서 매우 일반적입니다. 예를 들어, 계산해야 하는 일부 데이터의 경우 쿼리된 2차원 배열이 일반적으로 1차원 배열로 변환되므로 계산이 용이합니다. .

PHP에서 2차원 배열을 1차원 배열로 변환하는 방법은 매우 간단하며 array_column() 함수를 사용하면 됩니다. array_column() 함수를 어떻게 사용하는지 자세히 살펴보겠습니다.

array_column() 함수의 기본 사용법

array_column() 함수의 기본 구문은 다음과 같습니다.

array array_column( array $input, Mixed $column_key [, Mixed $index_key ] )

이 함수는 세 가지 매개 변수를 허용합니다. $input 매개변수는 변환할 배열을 지정하고, $column_key 매개변수는 1차원 배열로 변환할 열 이름이나 키 이름을 지정하며, $index_key 매개변수는 선택사항이며 새 배열에서 키 이름을 나타내는 데 사용됩니다. 배열을 지정하지 않으면 숫자 인덱스가 사용됩니다.

예를 들어 다음과 같은 2차원 배열이 있습니다:

$users = array(

array('id' => 1, 'name' => 'Tom', 'age' => 20),
array('id' => 2, 'name' => 'Jerry', 'age' => 18),
array('id' => 3, 'name' => 'Lucy', 'age' => 22)

);

array_column() 함수를 사용하여 1차원 배열로 변환할 수 있습니다.

$ names = array_column($ users, 'name');

변환된 결과는 다음과 같습니다.

array('Tom', 'Jerry', 'Lucy')

위 예에서는 $ 사용자는 새로운 1차원 배열로 배열합니다.

실제 개발에서는 여러 필드를 동시에 1차원 배열로 변환해야 할 수도 있습니다. 이 경우 여러 필드를 별도로 1차원 배열로 변환한 다음 함께 연결할 수 있습니다. 예를 들어, 다음 코드는 이름과 나이 필드를 모두 1차원 배열로 변환합니다.

$names = array_column($users, 'name')
$ages = array_column($users, 'age'); $info = array_merge ($names, $ages);

변환된 결과는 다음과 같습니다:

array('Tom', 'Jerry', 'Lucy', 20, 18, 22)

위 예에서는 다음을 결합합니다. $name과 $ages 배열을 이어붙여 새로운 1차원 배열을 얻습니다.

array_column() 함수의 고급 사용법

위에 소개된 기본 사용법 외에도 array_column() 함수에도 몇 가지 고급 사용법이 있는데, 아래에서 하나씩 소개하겠습니다.

    Original array as index
때로는 원본 배열의 필드를 새 배열의 인덱스로 사용해야 하는 경우 array_column()을 호출할 때 세 번째 매개변수인 $index_key를 원본으로 지정할 수 있습니다. 함수. 배열의 필드 이름입니다. 예를 들어 위 $users 배열의 id 필드를 새 배열의 인덱스로 사용하려면 다음과 같이 작동할 수 있습니다.

$users = array(

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

$names = array_column($users, ' name', 'id') ;

변환된 결과는 다음과 같습니다.

array(1 => 'Tom', 2 => 'Jerry', 3 => 'Lucy')

새 배열의 키 이름은 원본입니다. 배열의 id 필드입니다.

    다차원 배열 처리
실제 개발 중에 다차원 배열을 처리해야 하는 상황이 발생할 수 있습니다. 이 경우 array_map() 함수를 사용하여 각 2차원 배열을 배열로 변환할 수 있습니다. 1차원 배열을 만든 후 array_merge() 함수를 사용하여 이들을 연결하여 새로운 1차원 배열을 얻습니다. 예:

$users = array(

array('id' => 1, 'name' => array('first' => 'Tom', 'last' => 'Smith'), 'age' => 20),
array('id' => 2, 'name' => array('first' => 'Jerry', 'last' => 'Brown'), 'age' => 18),
array('id' => 3, 'name' => array('first' => 'Lucy', 'last' => 'Johnson'), 'age' => 22)
);

$names = array_map(function($user) {

return $user['name']['first'] . ' ' . $user['name']['last'];
}, $users);

$ages = array_column($users, 'age');
$info = array_merge($names, $ages);

변환된 결과는 다음과 같습니다.

array('Tom Smith', 'Jerry Brown', 'Lucy Johnson', 20, 18, 22)

볼 수 있습니다. , $users 배열의 name 필드를 1차원 배열로 변환할 때 array_map() 함수를 사용하여 각 2차원 배열을 1차원 배열로 변환한 후 array_merge() 함수를 사용해야 합니다. 그들을 하나로 연결합니다.

요약

이 글의 소개를 통해 PHP에서는 array_column() 함수를 사용하면 2차원 배열을 1차원 배열로 변환하는 것이 매우 쉽다는 것을 알 수 있습니다. 여러 필드를 1차원 배열로 변환해야 하는 경우 array_column() 함수를 여러 번 사용한 다음 함께 연결할 수 있습니다. 원래 배열의 필드를 인덱싱해야 하는 경우 array_column() 함수를 호출할 때 세 번째 매개변수를 지정하면 됩니다. 다차원 배열을 처리해야 하는 경우 array_map() 함수를 사용하여 각 2차원 배열을 변환할 수 있습니다. 배열을 한 차원으로 만든 다음 array_merge() 함수를 사용하여 서로 연결합니다.

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

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