sql >> Database teknologi >  >> RDS >> Mysql

Oprettelse af et array ved hjælp af rekursiv php fra mysql

Jeg syntes, at denne kode til gruppering af forældreunderordnede arrays var fantastisk. Jeg har testet i 4 dybder uden problemer. Det er dog ikke en rekursiv funktion.

$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.

Du skal muligvis lave nogle ændringer, for at det fuldt ud skal fungere med din situation. Men grundlæggende går den gennem alle resultaterne og kombinerer dem ved reference.

Bemærk, at slutningen $tree datatypen er et object og ikke et array

Held og lykke

OPDATERING

Du kan oprette arrayet som sådan

$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 
}


  1. Oracle UTL_FILE læste CSV-fillinjer

  2. Sqlite indsætter ikke data i 2. tabel

  3. Lukning af aktive forbindelser ved hjælp af RMySQL

  4. Netværksbelastningstest ved hjælp af iPerf