>  기사  >  백엔드 개발  >  PHP 2차원 배열을 1차원 배열로 변환하는 함수는 무엇입니까?

PHP 2차원 배열을 1차원 배열로 변환하는 함수는 무엇입니까?

L
L원래의
2020-06-02 10:13:103297검색

PHP 2차원 배열을 1차원 배열로 변환하는 함수는 무엇입니까?

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

1. array_reduce 함수 방법

2. array_walk_recursive 함수 방법

3. array_map 함수 방법

차원 배열:

$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函数法

用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())

array_walk_recursive函数法

用array_walk_recursive()函数就非常灵活,可以把任意维度的数组转换成一维数组。

$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_maparray_reduce

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

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

array_merge 함수는 동일한 문자열 키 이름을 가진 배열을 덮어쓰고 병합하므로 이를 제거해야 합니다. 병합하기 전에 먼저 array_value 값을 사용하십시오.

두 번째 차원이 숫자 키 이름인 경우(예:

rrreee) 다음과 같이 하세요. rrreee

2 array_walk_recursive 함수 메서드 🎜🎜array_walk_recursive() 함수를 사용하는 것은 매우 유연합니다. 임의의 차원 배열을 1차원 배열로 변환할 수 있습니다. 🎜rrreee🎜예를 들어 다음 다차원 배열은 🎜rrreee🎜이 방법을 사용하면 다음과 같습니다. 🎜rrreee🎜3 array_map 함수 방법🎜🎜rray_maparray_reduce 사용 code> 함수 메소드는 다음과 유사합니다. 🎜rrreee🎜 빈 $result 배열을 선언하면 됩니다. 🎜🎜그 외에도 array_walk 메서드와 foreach 루프 메서드를 사용할 수도 있습니다. 원리는 위와 동일합니다. 🎜🎜추천 튜토리얼: "🎜PHP 튜토리얼🎜"🎜

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

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