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.
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!