PHP 배열 그룹화 기능을 사용하면 지정된 키에 따라 배열 요소를 그룹화하고 여러 중첩 수준의 배열을 생성하여 계층 구조를 만들 수 있습니다. 코드 예제에서는 array_group_by()를 사용하여 데이터를 그룹화한 다음 재귀 함수 createHierarchy()를 사용하여 이를 계층 구조로 변환합니다. 이 함수는 그룹화된 결과를 반복하고 parent_id를 기반으로 하위 수준을 생성한 다음 궁극적으로 멋진 계층 구조를 갖춘 중첩 배열을 반환합니다.
계층 구조 생성 시 PHP 배열 그룹화 기능 적용
배열 그룹화 기능은 데이터 계층 구조를 유지해야 하는 시나리오를 처리하는 데 매우 유용합니다. PHP에서 array_group_by
함수는 지정된 키를 기반으로 배열의 요소를 그룹화하여 여러 수준의 중첩 배열을 만들 수 있습니다. array_group_by
函数可以将数组中的元素根据指定键进行分组,从而创建具有多个级别的嵌套数组。
代码示例
<?php // 有一个包含 id 和 parent_id 的表数据 $tableData = [ ['id' => 1, 'parent_id' => null], ['id' => 2, 'parent_id' => 1], ['id' => 3, 'parent_id' => 2], ['id' => 4, 'parent_id' => 1], ['id' => 5, 'parent_id' => 4], ]; // 根据 parent_id 对表数据进行分组 $groupedData = array_group_by($tableData, 'parent_id'); // 递归函数用于将分组结果转换为层级结构 function createHierarchy($data, $parentId = null) { $result = []; foreach ($data as $id => $values) { if ($id == $parentId) { foreach ($values as $value) { $result[] = [ 'id' => $value['id'], 'value' => $value['value'], 'children' => createHierarchy($data, $value['id']), ]; } return $result; } } } // 将分组数据转换为层级结构 $hierarchy = createHierarchy($groupedData, null); // 打印层级结构 print_r($hierarchy);
输出结果
Array ( [0] => Array ( [id] => 1 [value] => 1 [children] => Array ( [0] => Array ( [id] => 2 [value] => 2 [children] => Array ( [0] => Array ( [id] => 3 [value] => 3 [children] => Array ( ) ) ) ) [1] => Array ( [id] => 4 [value] => 4 [children] => Array ( [0] => Array ( [id] => 5 [value] => 5 [children] => Array ( ) ) ) ) ) ) )
在这个示例中,createHierarchy
createHierarchy
함수는 재귀 알고리즘을 사용하여 그룹화된 데이터를 순회하고 parent_id를 기반으로 하위 계층을 만듭니다. 궁극적으로 이는 훌륭한 계층 구조를 갖춘 중첩된 PHP 배열을 반환합니다. 🎜위 내용은 계층 구조 생성 시 PHP 배열 그룹화 기능 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!