Импортируйте текстовый файл с отрицательными числами, но минус - последний символ

Мне нужно импортировать текстовый файл в мою базу данных SQL, но отрицательные числа записываются с минусом в конце (например: 11.719,88- или 13.791,47-).

Когда я импортирую, отрицательные числа положительные. Все мои калькуляционные данные ложны...

В моей функции предварительной обработки (php) я пробовал много способов управлять ею, но безуспешно. Вот моя функция:

$char = $row['column_numbers'];
$char_array = str_split($char);
$last_char = end($char_array);
if($last_char == '-'){
    $char_array = preg_replace('/[-]/', '', $char_array);
    $char_array = '-'.$char_array;
    return $char_array;
}else{
    return $char_array;
}
$row["column_numbers"] = $char_array;

И у меня также есть это сообщение php: обнаружена ошибка PHP. Серьезность: Уведомление: преобразование массива в строку.

Что я делаю не так? Спасибо за помощь.

1 ответ

Решение

Как уже было сказано, здесь достаточно строковых функций; конкретно substr() и rtrim() пригодится:

substr($col, -1) дает нам последний символ и rtrim($col, '-') помогает удалить последний символ.

function fixNegatives($col) {
    if(substr($col, -1) == '-') {
        return '-' . rtrim($col, '-');
    }else{
        return $col;
    }
}
Другие вопросы по тегам