matriz PHP a SQL

$array = array ( 53 => array('num' => 20,'name' => 'aaa'), 10 => array('num' => 20,'name' => 'bbb') ); 

$ sql = "INSENTAR EN datos (id, num, nombre) VALORES ('53','20','aaa'),('10','20','bbb') ";

¿Cómo convertir $ array a ('53','20','aaa'),('10','20','bbb') ?

Gracias

implode () puede ayudarte a hacer esto, aunque necesitarás recorrerlo y aplicarlo a cada arreglo individual:

  $resultStrings = array(); foreach ($array as $key => $values) { $subarrayString = "('$key','" . implode($values, "','") . "')"; $resultStrings[] = $subarrayString; } $result = implode($resultStrings, ","); 

Haría esto usando una statement preparada y un bucle simple, por ejemplo

 $db = new PDO(...); $stmt = $db->prepare('INSERT INTO data(id, num, name) VALUES (?, ?, ?)'); $stmt->bindParam(1, $id); $stmt->bindParam(2, $num); $stmt->bindParam(3, $name); foreach ($array as $id => $vals) { $num = $vals['num']; $name = $vals['name']; $stmt->execute(); } 

recorrerlos usando foreach:

 $result = ''; foreach ($array as $key=>$subarray) { $result .= "('$key'"; foreach ($subarray as $el) { $result .= ",'$el'"; } $result .= "),"; } //get rid of the trailing comma $result = substr($result,0,-1); 

et voilá