PHP에서 배열 처리는 가장 일반적인 요구사항 중 하나입니다. 때로는 1차원 배열을 2차원 배열로 변환해야 하는 경우가 있습니다. 이 프로세스에는 다양한 데이터 작업이 포함될 수 있으며, 이를 위해서는 변환을 수행하기 위해 배열 함수를 유연하게 사용해야 합니다. 이 기사에서는 PHP에서 1차원 배열을 2차원 배열로 변환하는 몇 가지 방법과 기술을 소개합니다.
1. 1차원 배열을 2차원 배열로 변환해야 할 필요성
PHP에서는 1차원 배열과 2차원 배열이 일반적인 데이터 구조입니다. 1차원 배열은 1차원만 있는 배열이며 일반적으로 학생의 시험 점수와 같은 관련 데이터 집합을 저장하는 데 사용됩니다. 2차원 배열은 2차원 배열을 포함하며 일반적으로 학급의 모든 학생의 시험 점수와 같은 관련 데이터의 여러 세트를 저장하는 데 사용됩니다. PHP에서는 일반적으로 1차원 배열을 만들 때 배열 함수를 사용하고, 2차원 배열을 만들 때 2차 배열 함수를 사용합니다. 다음은 1차원 배열과 2차원 배열을 생성하는 간단한 예입니다.
$array1 = array("语文"=>85, "数学"=>90, "英语"=>88); $array2 = array( array("姓名"=>"张三","语文"=>85,"数学"=>90,"英语"=>88), array("姓名"=>"李四","语文"=>89,"数学"=>92,"英语"=>86), array("姓名"=>"王五","语文"=>90,"数学"=>87,"英语"=>91), array("姓名"=>"赵六","语文"=>88,"数学"=>91,"英语"=>89) );
때때로 1차원 배열을 2차원 배열로 변환해야 하는 상황에 직면합니다. 예를 들어, 학생들의 시험 점수 그룹이 있는데, 특정 규칙에 따라 이 점수 그룹을 그룹화한 다음 후속 처리 또는 표시를 용이하게 하기 위해 이를 2차원 배열로 변환해야 합니다. 이는 1차원 배열을 2차원 배열로 변환해야 하는 필요성입니다. 아래에서는 몇 가지 구현 방법을 소개합니다.
2. array_chunk 함수 사용
array_chunk 함수는 1차원 배열을 지정된 길이의 여러 개의 작은 배열로 분할한 다음 이 작은 배열을 새로운 두 개로 반환하는 것입니다. -차원 배열. 예를 들어, 다음과 같은 1차원 배열이 있습니다.
$students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89);
이 배열을 4개의 그룹으로 그룹화한 후 다음 방법을 사용할 수 있습니다.
$grouped_scores = array_chunk($students_scores, 4);
이 방법은 다음과 같습니다. 반환된 길이는 3개의 2차원 배열이며, 각 작은 배열에는 4개의 요소가 포함됩니다. 원래 배열의 길이가 작은 배열 길이의 정수 배수가 아닌 경우 마지막 작은 배열에는 나머지 요소가 포함됩니다. var_dump 함수를 사용하여 결과를 볼 수 있습니다.
var_dump($grouped_scores);
실행 결과는 다음과 같습니다.
array (size=3) 0 => array (size=4) 0 => int 85 1 => int 90 2 => int 88 3 => int 89 1 => array (size=4) 0 => int 92 1 => int 86 2 => int 90 3 => int 87 2 => array (size=4) 0 => int 91 1 => int 88 2 => int 91 3 => int 89
보시다시피 원래 배열은 길이가 4인 세 개의 작은 배열로 나뉘며, 이 작은 배열은 새로운 배열을 형성합니다. 2차원 배열 .
3. array_map 함수 사용
array_map 함수는 하나 이상의 배열의 각 요소에 지정된 콜백 함수를 적용하는 것입니다. array_map 함수를 사용하여 1차원 배열을 2차원 배열로 변환할 수 있습니다. 구체적인 방법은 다음과 같습니다.
function group_by($n, $array) { return array_chunk($array, $n); } $students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89); $grouped_scores = array_map('group_by', array(4), array($students_scores));
그 중 group_by 함수는 1차원 배열을 길이 $n$의 2차원 배열로 그룹화하는 데 사용됩니다. 그런 다음 array_map 함수를 사용하여 이 함수를 $students_scores$ 배열에 적용하여 새로운 2D 배열을 만듭니다. 나눌 길이가 다른 경우 배열 함수의 첫 번째 매개 변수를 $m$ 길이의 배열로 변경할 수 있습니다. 여기서 $m$은 나눌 길이입니다. 예를 들어 다음 코드는 원본 배열을 길이가 3이고 길이가 4인 2차원 배열로 분할합니다.
$grouped_scores = array_map('group_by', array(3,4), array($students_scores));
4. 루프 순회 사용
PHP에서는 루프 순회를 사용하여 1차원 배열을 변환할 수 있습니다. into 2차원 배열로 변환합니다. 구체적인 방법은 다음과 같습니다.
$students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89); $grouped_scores = array(); for ($i = 0; $i < count($students_scores); $i += 4) { $grouped_scores[] = array_slice($students_scores, $i, 4); }
그 중 array_slice 함수는 배열의 지정된 부분을 얻는 데 사용됩니다. 여기서는 루프 순회를 사용하여 원래 배열을 분할하고, 매번 $i$부터 시작하여 4개의 요소를 가져온 다음 이를 결과 배열에 작은 배열로 추가합니다.
5. 요약
PHP에서 1차원 배열을 2차원 배열로 변환하는 방법에는 여러 가지가 있으며, 가장 일반적인 방법은 array_chunk 함수 또는 루프 순회 구현을 사용하는 것입니다. array_map 함수는 또한 보다 유연한 방법이며 다양한 필요에 따라 다양한 분할 길이를 사용할 수 있습니다. 실제 적용에서는 최상의 변환 효과를 얻으려면 실제 상황에 따라 다양한 방법을 선택해야 합니다.
위 내용은 1차원 배열을 2차원 배열로 변환 php의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!