sql >> Base de Datos >  >> RDS >> Mysql

php muestra el menú de nodos de árbol multinivel

Es porque todavía tiene las categorías en la matriz cuando ya las asignó. Lo que puede hacer es hacer la función donde pasa el argumento como referencia, y en el ciclo foreach para tener la capacidad de borrar la matriz de esa categoría ya asignada. Implementación simple a continuación.

function getChildren(&$rows, $p = 0) {
    $r = array();
    foreach($rows as $row_id => $row) {
        if ($row['parent_node']==$p) {
            $r[$row['product_category_code']] = getChildren($rows, $row['product_category_code']);
            unset($rows[$row_id]);
        }
    }
    return $r;
}