我有一堆随机排序的元素,它们都引用此堆栈中的父元素(通过id,没有真正的引用)。根元素指的是自己。
将这些元素放入嵌套数组中的最有效算法是什么:
array(
array(
'element' => $element1,
'children' => array(
array(
'element' => $element1_1,
'children' => array()
),
array(
'element' => $element1_2,
'children' => array()
)
),
),
array(
'element' => $element2,
'children' => array()
)
)
数据示例:
$data = array(
array('id' => 4, 'pid' => 4, 'value' => 'V1'),
array('id' => 1, 'pid' => 4, 'value' => 'V2'),
array('id' => 3, 'pid' => 6, 'value' => 'V3'),
array('id' => 5, 'pid' => 8, 'value' => 'V4'),
array('id' => 8, 'pid' => 1, 'value' => 'V5'),
array('id' => 2, 'pid' => 4, 'value' => 'V6'),
array('id' => 6, 'pid' => 6, 'value' => 'V7'),
array('id' => 7, 'pid' => 4, 'value' => 'V8'),
array('id' => 9, 'pid' => 6, 'value' => 'V9')
);