Php 使用关系数据递归函数的多维数组

Php 使用关系数据递归函数的多维数组,php,arrays,json,Php,Arrays,Json,目前我正在为categories-subcategories关系创建多维数组,并创建JSON结构 我从以下URL中找到了以下代码: 这适用于上述数组,但不适用于多个父类别。请检查以下具有两个父类别id的数组:5273和5274 echo json_encode(makeRecursive(array( array('id' => 5273, 'parent' => 0, 'name' => 'John Doe'), array('id' =>

目前我正在为categories-subcategories关系创建多维数组,并创建JSON结构

我从以下URL中找到了以下代码:

这适用于上述数组,但不适用于多个父类别。请检查以下具有两个父类别id的数组:5273和5274

echo json_encode(makeRecursive(array(
      array('id' => 5273, 'parent' => 0,    'name' => 'John Doe'),
      array('id' => 5274, 'parent' => 0,    'name' => 'Kevin smith'),
      array('id' => 5276, 'parent' => 5274, 'name' => 'Ricky martin'),  
      array('id' => 6032, 'parent' => 5273, 'name' => 'Sally Smith'),
      array('id' => 6034, 'parent' => 6032, 'name' => 'Mike Jones'),
      array('id' => 6035, 'parent' => 6034, 'name' => 'Jason Williams'),
      array('id' => 6036, 'parent' => 5273, 'name' => 'Sara Johnson'),
      array('id' => 6037, 'parent' => 5273, 'name' => 'Dave Wilson'),
      array('id' => 6038, 'parent' => 6037, 'name' => 'Amy Martin'),
    )));

有人有解决方案吗?

好的,使用的makeRecursive()函数不能用于具有多个根的数据

您可以解决这个问题,但我认为更有趣的问题是原始数据的形式,以及是否有更优雅的方法来完成任务。也许有一个简单的方法可以用一个真正的递归函数来实现

echo json_encode(makeRecursive(array(
      array('id' => 5273, 'parent' => 0,    'name' => 'John Doe'),
      array('id' => 5274, 'parent' => 0,    'name' => 'Kevin smith'),
      array('id' => 5276, 'parent' => 5274, 'name' => 'Ricky martin'),  
      array('id' => 6032, 'parent' => 5273, 'name' => 'Sally Smith'),
      array('id' => 6034, 'parent' => 6032, 'name' => 'Mike Jones'),
      array('id' => 6035, 'parent' => 6034, 'name' => 'Jason Williams'),
      array('id' => 6036, 'parent' => 5273, 'name' => 'Sara Johnson'),
      array('id' => 6037, 'parent' => 5273, 'name' => 'Dave Wilson'),
      array('id' => 6038, 'parent' => 6037, 'name' => 'Amy Martin'),
    )));