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

ActiveRecord जहां_इन () सरणी के साथ

जिस सरणी को आप पास करने का प्रयास करते हैं वह एक बहु आयामी सरणी है। इसके बजाय इसे आजमाएं:

$ids = array();
foreach ($query->result_array() as $id)
    {
        $ids[] = $id['id'];
    }

$this->db->where_in('id', $ids);

आप पुनरावृति के बिना query->result_array() को समतल नहीं कर सकते। लेकिन अगर आपको अपने आवेदन में इस तरह के प्रश्नों को संभालने की बहुत आवश्यकता है, और यदि आपके पास> =PHP 5.3 स्थापित है, तो आप निम्न फ़ंक्शन को कोडनिर्देशक सहायक फ़ाइल (या कहीं और उपयुक्त) में समतल सरणी में मदद करने के लिए रख सकते हैं:

function flatten(array $array) {
    $return = array();
    array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
    return $return;
}

और अपने मामले में इसे इस तरह इस्तेमाल करें:

    $ids = flatten($query->result_array());
    $this->db->where_in('id', $ids); 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे जांचें कि PHP के साथ MySQL में उपयोगकर्ता पहले से मौजूद है या नहीं?

  2. रेल में 4 टेबल के लिए जॉइन क्वेरी का उपयोग कैसे करें

  3. PHP/MYSQL:ईमेल सूचनाओं के लिए डेटाबेस तालिका

  4. MYSQL पिछले बैलेंस के रूप में करंट बैलेंस को कैसे क्वेरी करें

  5. MySQL में तीन के पैक में पंक्तियां कैसे दिखाएं