Foros del Web » Programando para Internet » PHP »

arreglos en php

Estas en el tema de arreglos en php en el foro de PHP en Foros del Web. Hola gente como estan!!!!, señores hoy quiero acabar con una gran duda y puedo decir, que una lucha que siempre he tenido con php y ...
  #1 (permalink)  
Antiguo 01/05/2013, 16:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 28
Antigüedad: 13 años, 7 meses
Puntos: 1
arreglos en php

Hola gente como estan!!!!, señores hoy quiero acabar con una gran duda y puedo decir, que una lucha que siempre he tenido con php y es referente a los arreglos, yo tengo problemas con los arreglos ya que siempre me ha costado un poco comprender como es que funcionan, hoy quiero ponerles un ejemplo para que me puedan comprender la idea:

Siempre que hago un arreglo lo hago asi:

$dato=array();
$caracter=array();
while(($resultado=mysql_fetch_array($query))>0)
{
$dato[]=$resultado['datos'];
$caracter[]=$resultado['caracter'];

}

de esta forma lleno un arreglo con datos que busco en una base de datos.

si yo quisiera ver los datos que tiene cada item de esos arreglos los imprimo con esto:

foreach($caracter as $caracter)
{
echo $caracter."</br>";
}

Pero cual es mi dilema?, me he encontrado con unas graficas muyy interesantes que son las graficas de highcharts, entre todas las opciones que trae esas graficas echas en jquery, es la sección de datos que me llama la atención, segun el formato para que la grafica (valga la redundancia), grafique hay que pasar los datos en este formato:

date: [[5,6,7,8]];

Entonces tengo el dilema de que los datos que yo consulte de mi base de datos, de alguna forma tengo que ordenarlo en un vector final, un vector que de acuerdo a cada iteracion que hago con el while se vaya llenando.

Para eso encontre una solución que es JSON. al pasarle el parametro me ordena todo en un vector final:

$dato=array();
$caracter=array();
while(($resultado=mysql_fetch_array($query))>0)
{
$dato[]=$resultado['datos'];
$caracter[]=$resultado['caracter'];

}
$final=json_encode($dato);

Con esto obtengo un arreglo final de esta forma:

["5","6","7"];

Pero resulta que no me sirve, por que ese arreglo que me esta mostrando JSON, es un STRING, yo necesito que ese arreglo me muestre solo los numeros sin la comilla.

De verdad que estoy muy cerca de resolver mi problema pero no logro resolver este enigma. Si pueden darme una idea de que hacer o si existe alguna manera de obtener un array ordenado como el que les acabo de mostrar sin usar json se los agradeceria.

Gracias.
  #2 (permalink)  
Antiguo 01/05/2013, 17:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: arreglos en php

Puedes usar intval() para hacer el type-casting de los datos, eso o usar (int) que sería para lo mismo, consulta el manual.

Código PHP:
$x "2";
$y = (int) $x;
$z intval($x); 
Si tienes un array de números puedes usar array_map() para aplicar la misma función a todos los valores, sin embargo con hacer el cambio durante el primer bucle debería bastar.

PDTA: No creo que tengas problemas con arrays nada más por que sí, te aseguro que ni siquiera buscaste funciones para resolver tu problema, ¿acaso no consultas el manual?

Es buen hábito leer el manual, no solo cuando se está en problemas sino cuando se quiere saber más del lenguaje.

Como cultura general, es lo mismo que leer cualquier otro libro, mejor tu capacidad y nutre tu mente.

Cosa a parte, tu problema no es siquiera de arrays, es de tipo de datos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/05/2013, 17:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 28
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: arreglos en php

Hola, ante todo muchas gracias por responder.

En primer lugar si hubiera querido obtener los datos en INT o FLOAT los hubiera pasado con javascript. El problema es que JSON los pasa como un STRING, en la base de datos los datos estan guardados en FLOAT si los consulto con una simple sentencia, me llegan en NUMERICO, si paso el foreach los datos los muestra tal y como los tengo en la base de datos.

El problema es JSON que me muetra el arreglo como string, por esa razon pregunto aqui ya que el manual no dice nada de poder decirle a JSON de que deje los valores tal y como los esta recibiendo.
  #4 (permalink)  
Antiguo 02/05/2013, 03:44
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: arreglos en php

Cita:
Iniciado por Ing_jose Ver Mensaje
En primer lugar si hubiera querido obtener los datos en INT o FLOAT los hubiera pasado con javascript.
Qué significa esa frase??

Cita:
Iniciado por Ing_jose Ver Mensaje
si paso el foreach los datos los muestra tal y como los tengo en la base de datos.
Confundes cómo ves un dato, con cómo está almacenado.mysql_fetch_xxx siempre retorna strings.Viendo la representación de la salida de un "echo" de una variable, en un navegador, no vas a saber el tipo de de esa variable.No es que las strings salgan entrecomilladas cuando haces un echo.


Cita:
Iniciado por Ing_jose Ver Mensaje
El problema es JSON que me muetra el arreglo como string, por esa razon pregunto aqui ya que el manual no dice nada de poder decirle a JSON de que deje los valores tal y como los esta recibiendo.
JSON no "muestra" datos.La representación json del dato que estás codificando es correcta.Le estás pasando strings.
Pateketrueque tiene razón.
  #5 (permalink)  
Antiguo 02/05/2013, 06:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 28
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: arreglos en php

Señores, yo no entiendo, se supone que este foro es para que orienten a una persona como yo, que es novata en programacion en este caso novato en PHP, les comento mi problema, les coloco mi codigo, y lo unico que recibo son malas respuestas y me hablan en parabolas.

Si no me quieren ayudar por que me contestan?, y referente a javascript lo comento porque los datos que les mostre el codigo, los estaba sacando de una base de datos SQL SERVER, si colocaba los datos en la grafica de esta forma:

data: <?php echo $dato ?>

no servia, la unica forma de solventarlo era pasando ese valor obtenido en JAVASCRIPT de esta forma:

<script>
var dato=$dato;
</script>
De esa manera solo teni que decirle a mi grafica esto:

data: dato;

y funcionaba perfecto. Pero ahora quise hacer lo mismo usando Mysql y ahora no sirve.

Por esta razón, busque ayuda en este foro.

Etiquetas: arreglos, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.