valor una suma recorrer multidimensional matriz matrices imprimir hacer dibujar como buscar array 5x5 3x3 php pdo

suma - ¿Cómo puedo convertir todos los valores de una matriz a flotantes en PHP?



recorrer un array multidimensional php (4)

¿Cómo está obteniendo sus datos? mysql, mysqli o PDO, de alguna otra manera o incluso alguna otra base de datos?

podrías usar array_map con floatval como lo siguiente: $data = array_map(''floatval'', $data); pero eso aún ejecuta un ciclo y creo que asume que solo tienes una columna en tus datos.

es probable que sea mejor lanzar para flotar cuando usa su valor, si es necesario. php es probable que haga un buen trabajo interpretándolo bien de todos modos.

Estoy buscando una matriz de flotadores de mi base de datos pero la matriz que obtengo ha convertido los valores en cadenas.

¿Cómo puedo convertirlos en flotadores nuevamente sin pasar por el conjunto?
Alternativamente, ¿cómo puedo recuperar los valores de la base de datos sin convertirlos en cadenas?

EDITAR:

  • Estoy usando Zend Framework y estoy usando PDO_mysql. Los valores se almacenan uno por columna y eso es un requisito, así que no puedo serializarlos.

  • array_map(''floatval'', $array) solo funciona en matrices unidimensionales.

  • No puedo floatval los elementos individuales cuando los uso porque tengo que pasar una matriz a mi diagrama de flash.

  • La solución momentánea no genérica es extraer las filas y hacer array_map(''floatval'',$array) con cada fila.


¿No estás seguro de lo que estás preguntando aquí? Puede convertir una cadena en un flotante, utilizando (float) $string , pero dado que PHP se escribe de manera dinámica, eso ocurrirá de todos modos, cuando sea necesario. No hay ninguna razón para hacer un lanzamiento explícito.

¿Para qué estás usando los valores de coma flotante?


LOL ... ¿estás trabajando en el mismo proyecto que yo soy tharkun?

Acabo de terminar (ayer por la noche) creando algo, en un proyecto basado en ZF, que usa pdo_mysql para recuperar y formatear datos, y luego lo emite como xml para su uso en una pieza de flash. Los valores entraban como cadenas pero necesitaban ser flotantes. Como también soy el que escribió la parte que obtiene los datos y el que creó la base de datos, me aseguré de que los datos se convirtieran en flotantes antes de ingresar a la base de datos.

Simplemente eché los valores como float como parte de algún otro formato, por lo que vale.

protected function _c2f($input) { $input = (float)$input; $output = round(($input * 1.8) + 32, 2); return $output; }


Podrías usar

$floats = array_map(''floatval'', $nonFloats);

Existe la opción PDO::ATTR_STRINGIFY_FETCHES pero por lo que recuerdo, MySQL siempre lo tiene como true

Editar: vea el error 44341 que confirma que MySQL no es compatible con desactivar stringify.

Editar: también puede asignar una función personalizada como esta:

function toFloats($array) { return array_map(''floatval'', $array); } $data = array_map(''toFloats'', $my2DArray);