PHP로 개발하는 과정에서 무제한 분류는 일반적이고 중요한 요구 사항입니다. 사용 및 조작의 편의를 위해 일반적으로 무한 범주를 배열 형식으로 변환합니다. 무한한 범주형 데이터를 배열 형태로 변환하는 방법은 다음과 같습니다.
시작하기 전에 무한 범주형 데이터 형식을 설정해야 합니다. 일반적으로 기본 무한 분류 데이터 형식은 다음 필드로 구성됩니다.
예를 들어 간단한 무한 범주형 데이터는 다음과 같습니다.
[ ['id' => 1, 'name' => '电子产品', 'pid' => 0, 'level' => 1], ['id' => 2, 'name' => '手机', 'pid' => 1, 'level' => 2], ['id' => 3, 'name' => '电脑', 'pid' => 1, 'level' => 2], ['id' => 4, 'name' => '智能手机', 'pid' => 2, 'level' => 3], ['id' => 5, 'name' => '笔记本电脑', 'pid' => 3, 'level' => 3], ]
무한 범주형 데이터를 배열 형식으로 변환하는 재귀 함수를 정의할 수 있습니다. 이 함수의 코드는 다음과 같습니다.
function categoryToTree($source, $parentId = 0) { $result = []; foreach ($source as $key => $value) { if ($value['pid'] == $parentId) { unset($source[$key]); $children = categoryToTree($source, $value['id']); if (!empty($children)) { $value['children'] = $children; } $result[] = $value; } } return $result; }
무한 분류 변환을 위해 재귀를 사용합니다. 구체적으로, 각 카테고리 데이터에 대해 먼저 현재 카테고리의 하위 카테고리인지 확인합니다. 그렇다면 이를 결과 배열에 추가하고 해당 하위 카테고리를 재귀적으로 처리합니다. 그렇지 않으면 카테고리를 건너뛰고 다음 카테고리 데이터를 직접 처리합니다.
하위 카테고리를 재귀적으로 처리할 때 배열에서 $source
数组传入。为了保证每个分类只被处理一次,我们需要将已经处理过的分类数据从 $source
가 삭제된다는 점에 유의하세요.
위에 정의된 변환 함수를 사용하면 무한한 범주형 데이터를 배열 형태로 변환할 수 있습니다. 예를 들어 다음 코드를 실행합니다.
$data = [ ['id' => 1, 'name' => '电子产品', 'pid' => 0, 'level' => 1], ['id' => 2, 'name' => '手机', 'pid' => 1, 'level' => 2], ['id' => 3, 'name' => '电脑', 'pid' => 1, 'level' => 2], ['id' => 4, 'name' => '智能手机', 'pid' => 2, 'level' => 3], ['id' => 5, 'name' => '笔记本电脑', 'pid' => 3, 'level' => 3], ]; $result = categoryToTree($data); print_r($result);
출력은 다음과 같습니다.
Array ( [0] => Array ( [id] => 1 [name] => 电子产品 [pid] => 0 [level] => 1 [children] => Array ( [0] => Array ( [id] => 2 [name] => 手机 [pid] => 1 [level] => 2 [children] => Array ( [0] => Array ( [id] => 4 [name] => 智能手机 [pid] => 2 [level] => 3 ) ) ) [1] => Array ( [id] => 3 [name] => 电脑 [pid] => 1 [level] => 2 [children] => Array ( [0] => Array ( [id] => 5 [name] => 笔记本电脑 [pid] => 3 [level] => 3 ) ) ) ) ) )
보시다시피 무한한 카테고리 데이터를 배열 형식으로 변환했으며 각 카테고리에는 하위 카테고리가 포함되어 있습니다. 이러한 방식으로 배열 함수를 사용하여 무한한 범주형 데이터를 쉽게 처리할 수 있습니다.
위 내용은 PHP에서 무한 범주형 데이터를 배열 형식으로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!