PHP: <?php ..... protected function getAddQuery($dbarr, $tablename, $prefix) { $this->split_query_array($dbarr, $colums, $values, $prefix); $ret = "INSERT INTO $tablename \n\t("; $ret .= implode(", \n\t",$colums); $ret .= ") \n VALUES \n\t("; $ret .= implode(", \n\t",$values); $ret .= ");"; return $ret; } private function split_query_array($arr, &$k, &$v, $pr) { //Ключи станут именами колонок $k=array_keys($arr); array_walk($k, array($this, 'addArray_prefix'), $pr); //Значения -- вносимыми значеними $v=array_values($arr); array_walk($v, array($this, 'addArray_quote')); } private function addArray_quote (&$arr, $key) { $arr = "'$arr'"; } private function addArray_prefix (&$arr, $key, $prefix) { $arr = $prefix.$arr; } ...?> функция получает ассоцаитивный массив, имя таблицы и префикс для каждой колонки На одном формуме мне сказали, что так нехорошо. Но похожее встречается в simplemachine А вы что думаете по этому поводу? Мне толко не нравиться, что нужно разбить массив на ключи и значения и обработать их отдельно. Т.Е. хотелось бы обработать array_walk изначальный массив (сразу ключи и значения) а не по отдельности