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

MYSQL पैरेंट चाइल्ड सेम टेबल; माता-पिता के भीतर PHP घोंसला बच्चे एक बहुआयामी-सरणी के रूप में

संदर्भ, उन लाभों के साथ जो आदेश से कोई फर्क नहीं पड़ता (चाइल्डनोड्स उनके माता-पिता से पहले आ सकते हैं):

 $tree = array('NULL' => array('children' => array()));
 foreach($array as $item){
    if(isset($tree[$item['id']])){
       $tree[$item['id']] = array_merge($tree[$item['id']],$item);
    } else {
       $tree[$item['id']] = $item;
    }

    $parentid = is_null($item['id_parent']) ? 'NULL' : $item['id_parent'];
    if(!isset($tree[$parentid])) $tree[$parentid] = array('children' => array());
    //this & is where the magic happens: any alteration to $tree[$item['id']
    //  will reflect in the item $tree[$parentid]['children'] as they are the same
    //  variable. For instance, adding a child to $tree[$item['id']]['children]
    //  will be seen in 
    //  $tree[$parentid]['children'][<whatever index $item['id'] has>]['children]
    $tree[$parentid]['children'][] = &$tree[$item['id']];
 }
 $result = $tree['NULL']['children'];
 //always unset references
 unset($tree);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक रूप और एक प्रसंस्करण पृष्ठ

  2. MySQL और Java - अंतिम सम्मिलित मूल्य (JDBC) की आईडी प्राप्त करें

  3. MySQL COS () फ़ंक्शन - MySQL में किसी संख्या की कोज्या लौटाएं

  4. MySQL क्वेरी हैंग हो रही है और प्रक्रिया को मारना पड़ा

  5. क्या MySQL में कमिट करने के बाद रोलबैक करने का कोई तरीका है?