Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Mysql से पुनरावर्ती php का उपयोग करके एक सरणी बनाना

मुझे यह कोड माता-पिता के बाल सरणियों को अद्भुत बनाने के लिए मिला है। मैंने बिना किसी समस्या के 4 गहराई में परीक्षण किया है। हालांकि यह एक पुनरावर्ती कार्य नहीं है।

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

अपनी स्थिति के साथ पूरी तरह से काम करने के लिए आपको इसमें कुछ संशोधन करने पड़ सकते हैं। लेकिन मूल रूप से यह सभी परिणामों के माध्यम से लूप करता है और उन्हें संदर्भ द्वारा जोड़ता है।

ध्यान दें कि अंतिम $tree डेटा प्रकार एक object है और नहीं एक array

शुभकामनाएँ

अपडेट करें

आप इस तरह से ऐरे बना सकते हैं

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में Oracle के REF CURSOR के बराबर क्या है?

  2. MySQL में स्थिति निष्पादन का क्रम

  3. MySQL डेटा को कैसे स्टोर करता है

  4. WHERE क्लॉज में MySQL यूजर-डिफ़ाइंड वैरिएबल

  5. एंटिटी फ्रेमवर्क नेस्टेड SQL क्वेरीज़ क्यों उत्पन्न करता है?