PHP에서는 데이터를 저장하고 조작하기 위해 배열을 자주 사용합니다. 실제 응용에서는 때때로 2차원 객체 배열을 전치해야 할 때가 있습니다. 소위 전치란 원래 행을 열로, 열을 행으로 변경하는 것입니다. 이 기사에서는 PHP를 사용하여 2차원 객체 배열을 전치하는 방법을 소개합니다.
학생 이름과 각 과목의 성적을 포함하는 2차원 객체 배열 $data가 있다고 가정합니다. 예:
$data = array( array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93), array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89), array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94) );
이 배열은 다음과 같이 3x4 테이블로 표현될 수 있습니다. 아래 표시:
Name | Math | English | Chinese |
---|---|---|---|
Xiao Ming | 90 | 85 | 93 |
작은红 | 88 | 92 | 89 |
Xiaogang | 95 | 87 | 94 |
우리의 목표는 이 표를 4x3 표로 바꾸는 것입니다. 여기서 첫 번째 줄은 과목 이름이고 나머지는 각 성적입니다. 학생 . 아래와 같습니다:
Xiao Ming | Xiao Hong | Xiao Gang | |
---|---|---|---|
Math | 90 | 88 | 95 |
영어 | 85 | 92 | 87 |
중국어 | 93 | 89 | 94 |
2차원 배열을 전치하려면 다음 단계를 따르세요. 새로 만들기 두 개 -차원 배열 $result, 행 수는 원래 배열의 열 수이고 열 수는 원래 배열의 행 수입니다.
function transpose($data) { //获取原数组的行数和列数 $rows = count($data); $cols = count($data[0]) - 1; //创建一个新的二维数组 $result = array(); for($i=0; $i<=$cols; $i++) { $result[$i] = array(); } //遍历原数组,将每个元素的行下标和列下标互换 for($row=0; $row<$rows; $row++) { for($col=1; $col<=$cols; $col++) { $result[$col-1][$row] = $data[$row]['name']; $result[$col-1][$row+1] = $data[$row]["Math"]; $result[$col-1][$row+2] = $data[$row]["English"]; $result[$col-1][$row+3] = $data[$row]["Chinese"]; } } return $result; }이 함수는 2차원 객체 배열 $data를 매개변수로 받아들이고 전치된 2차원 배열을 반환합니다. 구체적인 구현은 다음 단계로 나뉩니다.
먼저 원래 배열의 행과 열 수를 가져옵니다. 첫 번째 요소는 제목이 아니라 이름이기 때문에 실제로 열 수에서 1을 뺀 값입니다.
사용 예
$data = array( array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93), array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89), array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94) ); $result = transpose($data); //输出转置后的数组 foreach($result as $row) { echo implode("\t", $row) . "\n"; }출력 결과는 다음과 같습니다.
小明 小红 小刚 90 88 95 85 92 87 93 89 94
Summary
위 내용은 PHP를 사용하여 2차원 객체 배열을 전치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!