>  기사  >  백엔드 개발  >  PHP 2차원 배열(또는 모든 차원 배열)을 1차원 배열로 변환하는 방법 요약

PHP 2차원 배열(또는 모든 차원 배열)을 1차원 배열로 변환하는 방법 요약

angryTom
angryTom앞으로
2019-10-16 09:50:402083검색

PHP 2차원 배열(또는 모든 차원 배열)을 1차원 배열로 변환하는 방법 요약

다음과 같은 2차원 배열이 있다고 가정합니다.

$user = array(
    '0' => array('id' => 100, 'username' => 'a1'),
    '1' => array('id' => 101, 'username' => 'a2'),
    '2' => array('id' => 102, 'username' => 'a3'),
    '3' => array('id' => 103, 'username' => 'a4'),
    '4' => array('id' => 104, 'username' => 'a5'),
);

이제 1차원 배열로 변환하려면 두 가지 상황이 있습니다.

하나는 지정된 열을 1차원 배열로 변환하는 것입니다. 다른 기사: "PHP의 다차원 배열에서 지정된 열을 추출하는 포괄적인 방법"에 요약되어 있습니다.

이제 모든 값을 1차원 배열로 변환하는 두 번째 경우에 초점을 맞추겠습니다. 키 값은 동일하고 덮어쓰이지 않습니다. 변환된 1차원 배열은 다음과 같습니다. this:

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');

주로 다음과 같은 방법이 있습니다.

1 array_reduce 함수 방법

array_reduce() 함수를 사용하는 것이 더 빠른 방법입니다.

$result = array_reduce($user, function ($result, $value) {
    return array_merge($result, array_values($value));
}, array())

array_merge 함수는 동일한 문자열 키 이름으로 배열을 덮어쓰고 병합하므로 먼저 array_value를 사용하여 값을 가져와야 합니다. 그런 다음 병합하십시오.

두 번째 차원이 다음과 같은 숫자 키 이름인 경우:

$user = array(
    'a' => array(100, 'a1'),
    'b' => array(101, 'a2'),
    'c' => array(102, 'a3'),
    'd' => array(103, 'a4'),
    'e' => array(104, 'a5'),
);

그런 다음 다음을 수행하십시오.

$result = array_reduce($user, 'array_merge', array())

2 array_walk_recursive 함수 메서드

array_walk_recursive() 함수는 매우 유연하며 모든 차원의 배열을 다음으로 변환할 수 있습니다. 1차원 배열.

$result = [];
array_walk_recursive($user, function($value) use (&$result) {
    array_push($result, $value);
});

예를 들어 다음 다차원 배열은

$user4 = array(
    'a' => array(100, 'a1'),
    'b' => array(101, 'a2'),
    'c' => array(
        'd' => array(102, 'a3'),
        'e' => array(103, 'a4'),
    ),
);

이 방법을 사용하면 다음과 같습니다.

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');

3 array_map 함수 방법

array_map 및 array_reduce 함수 사용 방법은 다음과 유사합니다.

$result = [];
array_map(function ($value) use (&$result) {
    $result = array_merge($result, array_values($value));
}, $user);

더 많은 선언이 필요합니다. 빈 $result 배열입니다.

그 외에도 array_walk 메서드와 foreach 루프 메서드를 사용할 수도 있습니다. 원리는 위와 동일합니다.

더 많은 PHP 관련 지식을 알고 싶다면 PHP 중국어 웹사이트를 방문하세요!

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

성명:
이 기사는 www.awaimai.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제