निम्नलिखित कोड काम करेगा, लेकिन यह मानता है कि सभी नेस्टेड सरणियों की लंबाई समान है, दूसरे शब्दों में, प्रत्येक नेस्टेड सरणी में पहले नेस्टेड सरणी में परिभाषित सभी विशेषताओं के लिए मान होते हैं।
$array = array(
array('name', 'age', 'gender' ),
array('Ian', 24, 'male'),
array('Janice', 21, 'female')
);
$fields = implode(', ', array_shift($array));
$values = array();
foreach ($array as $rowValues) {
foreach ($rowValues as $key => $rowValue) {
$rowValues[$key] = mysql_real_escape_string($rowValues[$key]);
}
$values[] = "(" . implode(', ', $rowValues) . ")";
}
$query = "INSERT INTO table_name ($fields) VALUES (" . implode (', ', $values) . ")";
यह समाधान पहले नेस्टेड सरणी में परिभाषित किसी भी संख्या में विशेषताओं के साथ काम करेगा, जब तक कि अन्य सभी नेस्टेड सरणियों की लंबाई समान हो। आउटपुट के ऊपर एरे के लिए होगा:
INSERT INTO table_name (name, age, gender) VALUES (Ian, 24, male), (Janice, 21, female)
प्रदर्शन के लिए देखें http://codepad.org/7SG7lHaH , लेकिन ध्यान दें कि मैंने codepad.org पर mysql_real_escape_string() पर कॉल को हटा दिया है, क्योंकि वे फ़ंक्शन की अनुमति नहीं देते हैं। आपको अपने कोड में इसका इस्तेमाल करना चाहिए।