Saya menemukan kode ini untuk mengelompokkan array induk anak menjadi luar biasa. Saya telah menguji di 4 kedalaman tanpa masalah apa pun. Ini bukan fungsi rekursif.
$tree = null;
foreach($results as $result)
{
$thisref = &$refs->{$result['id']};
foreach($result as $k => $v)
{
$thisref->{$k} = $v;
}
if ($result['parentId'] == 0) {
$tree->{$result['id']} = &$thisref;
} else {
$refs->{$result['parentId']}->children->{$result['id']} = &$thisref;
}
}
$tree; // contains the newly sorted tree.
Anda mungkin harus melakukan beberapa modifikasi agar dapat sepenuhnya bekerja dengan situasi Anda. Tetapi pada dasarnya ini mengulang semua hasil dan menggabungkannya dengan referensi.
Perhatikan bahwa akhiran $tree
tipe data adalah object
dan bukan array
Semoga Sukses
PERBARUI
Anda dapat membuat array seperti itu
$query = "SELECT * FROM pB_test ORDER BY parentId ASC";
$dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());
$results = array();
while($row=mysql_fetch_assoc($dbresult))
{
$results[]=$row
}