Обработка массива под родительскую-дочернюю структуру - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.

Name: Обработка массива под родительскую-дочернюю структуру fullscreencopydownloadembedprint


Your result can be seen below.

Result of php executing





Full code of Обработка массива под родительскую-дочернюю структуру.php

  1. <?php
  2. /**
  3.  * Обработка массива под родительскую/дочернюю структуру
  4.  */
  5. function recursiveStructureProcessing($collectionArray, $parentId = 0): array
  6. {
  7.     $collectionResult = [];
  8.     foreach ($collectionArray as $item) {
  9.         if ($item['parent_id'] === $parentId) {
  10.             $item['children'] = recursiveStructureProcessing($collectionArray, $item['id']);
  11.             $collectionResult[] =  $item;
  12.         }
  13.     }
  14.     return $collectionResult;
  15. }
  16.  
  17.  
  18. $originArray = [
  19.     [
  20.         'id' => 1,
  21.         'parent_id' => 0,
  22.         'name' => 'root'
  23.     ],
  24.     [
  25.         'id' => 2,
  26.         'parent_id' => 1,
  27.         'name' => 'folder1'
  28.     ],
  29.     [
  30.         'id' => 3,
  31.         'parent_id' => 1,
  32.         'name' => 'folder2'
  33.     ],
  34.     [
  35.         'id' => 4,
  36.         'parent_id' => 2,
  37.         'name' => 'folder3'
  38.     ],
  39.     [
  40.         'id' => 5,
  41.         'parent_id' => 3,
  42.         'name' => 'folder4'
  43.     ],
  44.     [
  45.         'id' => 6,
  46.         'parent_id' => 3,
  47.         'name' => 'folder5'
  48.     ],
  49.     [
  50.         'id' => 7,
  51.         'parent_id' => 5,
  52.         'name' => 'folder6'
  53.     ],
  54.     [
  55.         'id' => 8,
  56.         'parent_id' => 3,
  57.         'name' => 'folder7'
  58.     ],
  59.     [
  60.         'id' => 9,
  61.         'parent_id' => 8,
  62.         'name' => 'folder8'
  63.     ],
  64. ];
  65.  
  66. var_export(recursiveStructureProcessing($originArray));
  67.  
  68.  
  69.  
File Description
  • Обработка массива под родительскую-дочернюю структуру
  • PHP Code
  • 31 May-2023
  • 1.39 Kb
You can Share it: