> 백엔드 개발 > PHP 문제 > 1차원 배열을 2차원 배열로 변환 php

1차원 배열을 2차원 배열로 변환 php

WBOY
풀어 주다: 2023-05-23 11:31:37
원래의
1072명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿