PHP에서 2차원 배열을 여러 개의 1차원 배열로 변환하는 방법: 1. array_reduce() 함수를 사용하여 변환합니다. 2. array_walk_recursive() 함수를 사용하여 변환합니다. 전환하다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
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
함수는 동일한 문자열 키를 사용하여 배열을 병합하기 때문입니다. name 덮어쓰기 및 병합이므로 먼저 array_value
를 사용하여 값을 가져온 다음 병합해야 합니다. 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()函数就非常灵活,可以把任意维度的数组转换成一维数组。
$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);
只是需要多声明一个空的<span class="hljs-variable">$result</span>
数组。
另外,也可以用array_walk
的方法,和<span class="hljs-keyword">foreach</span>
rrreee 그런 다음 다음을 수행하십시오. rrreee
🎜🎜2 array_walk_recursive 함수 방법🎜🎜🎜🎜 array_walk_recursive() 함수는 매우 유연하며 모든 차원을 변환할 수 있습니다. 배열을 1차원 배열로 변환합니다. 🎜rrreee🎜예를 들어 다음 다차원 배열은 다음과 같습니다. 🎜rrreee🎜이 방법을 사용하면 다음과 같습니다. 🎜rrreee🎜🎜🎜3 array_map 함수 방법🎜🎜🎜🎜array_map
사용 > 및 array_reduce 함수의 메서드는 다음과 유사합니다. 🎜rrreee🎜 빈 <span class="hljs -variable">$result 🎜</span>
배열. 🎜🎜또한 array_walk
메서드와 <span class="hljs-keyword">foreach🎜</span>
를 사용할 수도 있습니다. > loop 방법 및 원리는 위와 동일합니다. 🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜위 내용은 PHP에서 2차원 배열을 여러 개의 1차원 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!