![]() |
Insertar float en mysql desde csv Hola Estoy tomando valores desde un archivo csv que son insertados en una tabla mysql Algunos de los valores del csv son int, string, float, etc Mi problema es con los float. Los float en el csv son así por ejemplo: 3.470,000, 1.650,520, 276,0003. 470,000, 77,030. Mi problema son con los 2 primeros, porque tienen " . " Código PHP: Esto tira como resultado una cadena así: "hola","123","adios", "3.470,000","fin", etc Yo necesito analizar campo por campo del csv y darme cuenta cuando el valor es por ejemplo 3.470,000, y si encuentro un match, pasarlo a 3470,000 También el valor puede ser algo como: 1.253.456.876.456,00 Lo puedo hacer un una expreción regular? |
Respuesta: Insertar float en mysql desde csv number_format (PHP 4, PHP 5) number_format — Dar formato a un número con los miles agrupados Descripción string number_format ( float $numero [, int $decimales [, string $punto_dec ]], string $sep_miles ) number_format() devuelve una versión con formato de numero . Esta función acepta uno, dos, o cuatro parámetros (no tres): Si solo se entrega un parámetro, numero recibirá un formato sin decimales, pero con una coma (",") entre cada grupo de miles. Si se entregan dos parámetros, numero recibirá un formato con la cantidad de decimales dada, con un punto (".") al frente, y una coma (",") entre cada grupo de miles. Si todos los cuatro parámetros son dados, numero recibirá un formato con la cantidad de decimales dada, punto_dec en lugar de un punto (".") antes de los decimales, y sep_miles en lugar de una coma (",") entre cada grupo de miles. Sólo el primer caracter de sep_miles es usado. Por ejemplo, si usa bar como sep_miles sobre el número 1000, number_format() devolverá 1b000. Example #1 Ejemplo de number_format() Por ejemplo, la notación francesa usa usualmente dos decimales, coma (',') como separador decimal, y espacio (' ') como separador de miles. Esto se puede lograr con esta línea: <?php $numero = 1234.56; // notación inglesa (predeterminada) $numero_formato_ingles = number_format($numero); // 1,235 // notación francesa $numero_formato_frances = number_format($numero, 2, ',', ' '); // 1 234,56 $numero = 1234.5678; // notación inglesa sin separador de miles $numero_formato_ingles = number_format($numero, 2, '.', ''); // 1234.57 ?> Vea también: money_format(), sprintf(), printf() y sscanf(). |
Respuesta: Insertar float en mysql desde csv Creo que eso no me sirve: Mi numero ya está agrupado en miles: 2.310,730 Lo que hace esta función es agruparlo en miles y definir separadores. Yo quiero que el número pase a 2310,730, o sea que es todo lo contrario. Pero antes de pasarlo, el código se tiene que dar cuenta si parsear el valor o no, porque puede haber otros valores como "pepe" en el csv. Gracias |
Respuesta: Insertar float en mysql desde csv Código PHP: |
Respuesta: Insertar float en mysql desde csv Muchas gracias LoveMeNot, funcionó como quería!!! :) |
| La zona horaria es GMT -6. Ahora son las 06:29. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.