Home  >  Article  >  Backend Development  >  How to convert php array to tree structure

How to convert php array to tree structure

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2023-06-07 09:29:031183browse

How to convert php array to tree structure: 1. Create a PHP sample file; 2. Construct a function with the syntax "function buildTree(array $elements, $parentId = 0)" Parameter 1 is to be converted Array, parameter 2 is the specified root node; 3. Define the $branch empty array in the function to store the tree structure and traverse it; 4. After traversing, add the modified elements to the $branch array and return the tree structure Just use the structure array $branch.

How to convert php array to tree structure

Operating system for this tutorial: Windows 10 system, php8.1.3 version, Dell G3 computer.

Convert PHP array to tree structure, which can be achieved through recursive method.

The following is an example of a PHP function:

function buildTree(array $elements, $parentId = 0) {
    $branch = array();
    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = buildTree($elements, $element['id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[] = $element;
        }
    }
    return $branch;
}

In this function, the parameter $elements is the array to be converted, and $parentId is the specified root node (default is 0) . The function first defines an empty array named $branch to store and traverse the tree structure.

In each loop, the function checks whether the current element has the specified parent ID. If so, it means that it is a child node of the current node. It then calls its own buildTree() function to add child nodes and assigns the child nodes to the $children variable. The function continues to check whether $children is empty, and if not, assigns the child node to the 'children' key of the current element. Finally, the function adds the modified elements to the $branch array.

When all elements are processed, the function will return the tree structure array $branch.

Suppose we have the following data:

$elements = [
    ['id' => 1, 'name' => 'Parent 1', 'parent_id' => 0],
    ['id' => 2, 'name' => 'Child 1', 'parent_id' => 1],
    ['id' => 3, 'name' => 'Grandchild 1', 'parent_id' => 2],
    ['id' => 4, 'name' => 'Grandchild 2', 'parent_id' => 2],
    ['id' => 5, 'name' => 'Parent 2', 'parent_id' => 0],
];

This function can be called to generate a tree structure.

The above is the detailed content of How to convert php array to tree structure. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn