данная функция должна корректно работает с латинскими названиями и может не работать для прочих языков, например для Русского. function fieldNameToCamelCase($fieldName,$restLowerCase=false) { if ($restLowerCase) {$fieldName = strtolower($fieldName);} while (($pos = strpos($fieldName,"_")) !== false) { $fieldName = substr($fieldName,0,$pos) . strtoupper(substr($fieldName,($pos+1),1)) . substr($fieldName,($pos+2)); } return $fieldName; } Ещё вариант функции, в которой substr не будет возвращать пустых значений. Возможно в этом нет необходимости function fieldNameToCamelCase($fieldName,$restLowerCase=false) { if ($restLowerCase) {$fieldName = strtolower($fieldName);} while (($pos = strpos($fieldName,"_")) !== false) { if (strlen($fieldName) > ($pos+2)) { $fieldName = substr($fieldName,0,$pos) . strtoupper(substr($fieldName,($pos+1),1)) . substr($fieldName,($pos+2)); } elseif (strlen($fieldName) > ($pos+1)) { $fieldName = substr($fieldName,0,$pos) . strtoupper(substr($fieldName,($pos+1),1)); } else { $fieldName = substr($fieldName,0,$pos); } } return $fieldName; }