elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:16  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Duda con arrays dentro de arrays
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con arrays dentro de arrays  (Leído 1,954 veces)
Servia


Desconectado Desconectado

Mensajes: 317


Ver Perfil
Duda con arrays dentro de arrays
« en: 5 Marzo 2011, 12:45 »

Pongamos que tengo:

Código
while($info=mysql_fetch_array($resultado_query)){
 
$datos[$info['id']]=$info['nombre'];
}

Si ahora quiero que este array [array ( id -> nombre)] lleve otro campo, como debería hacerlo?


Código
while($info=mysql_fetch_array($resultado_query)){
 
$datos[$info['id']]=$info['nombre'];
$datos[$info['id']]['apellido']=$info['apellido'];
}

Esto funcionaría?
Si hiciese

Código
foreach($datos AS $k => $v)
{
$parseo[$i]["id"]=$k;
$parseo[$i]["nombre"]=$v;
$parseo[$i]["apellido"]=$v['apellido'];
 
 
Sería correcto? O tendría que cambiar el foreach entero? Hay alguna posibilidad de evitar cambiar el foreach?


En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #1 en: 5 Marzo 2011, 15:21 »

No entiendo muy bien lo que tratas de hacer, cual es el objetivo de lo que tratas de hacer¿?
Así entenderé lo que tratas de hacer.


En línea

Servia


Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #2 en: 6 Marzo 2011, 09:50 »

No entiendo muy bien lo que tratas de hacer, cual es el objetivo de lo que tratas de hacer¿?
Así entenderé lo que tratas de hacer.

Quiero tener un array con 3 datos, id, nombre y apellido y quiero saber como meter el tercero y sacarlo en los casos expresados :)
En línea
Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #3 en: 6 Marzo 2011, 12:23 »

Arrays dentro de arrays dentro de arrays... Origen.

Lo que tu quieres tener un array de tuplas con tres datos cada una, aunque para manejar las tuplas es mejor usar los arrays. Aunque igualmente no son arrays, son maps o diccionarios, lo que pasa es que para php todo es lo mismo.

Si no sabes si funciona un código o no, no pongas tonterías en un foro, le das a ejecutar y ves si funciona, en realidad, ves que no funciona. En realidad sería:

Código
while($info=mysql_fetch_array($resultado_query)){
   $datos[$info['id']]['nombre']=$info['nombre'];
   $datos[$info['id']]['apellido']=$info['apellido'];
}

Tal vez te parezca como que tienes un nodo en blanco o algo así si tienes conocimiento previo de otras cosas, pero no es el caso, php no va así.
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #4 en: 6 Marzo 2011, 12:58 »

Aunque igualmente no son arrays, son maps o diccionarios, lo que pasa es que para php todo es lo mismo.

xDDDDD.

En otros lenguajes también son llamados hash, pero en este caso son Array bidimensional xD. También en algunos lenguajes se le llaman así xD.

Nose cual seria el objetivo de @Servia, pero no esta optimizando.
En línea

Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #5 en: 6 Marzo 2011, 13:26 »

En otros lenguajes también son llamados hash, pero en este caso son Array bidimensional xD. También en algunos lenguajes se le llaman así xD.
El caso es que el índice del array no es un número del 0 a longitud del array-1, por tanto no es exactamente un array. Esto es especialmente importante porque quiere guardar tuplas de 3 elementos, pero como ves, uno pasa a ser el identificador o clave.

Nose cual seria el objetivo de @Servia, pero no esta optimizando.
Con que sea capaz de escribir algo que el intérprete de php entienda yo ya le consideraría afortunado, todavía le queda mucho por aprender de php como para aprender de metodología de la programación (que es por donde irían las optimizaciones, al menos inicialmente).
En línea
Servia


Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #6 en: 7 Marzo 2011, 10:13 »

Y entonces el foreach como debería ir? O ya está bien como lo he puesto ?
En línea
cassiani


Desconectado Desconectado

Mensajes: 946


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda con arrays dentro de arrays
« Respuesta #7 en: 7 Marzo 2011, 16:41 »

Servia, haber si es esto lo que buscas, te dejo un ejemplo:

Teniendo una tabla con los siguientes datos:
Código:
+----------+---------+--------+
| idtabla1 | campo1  | campo2 |
+----------+---------+--------+
|        1 | Juan    | Perez  |
|        2 | Maria   | Lopez  |
|        3 | Luis    | Martin |
|        4 | mariana | ruiz   |
|        5 | karen   | martin |
|        6 | kim     | gomez  |
+----------+---------+--------+

Asignamos los datos a un array:
Código
while ($row = mysql_fetch_array($result))
$sDatos[]= array
(
'id' => $row['idtabla1'],
'campo1' => $row['campo1'],
'campo2' => $row['campo2']
);

Luego mostramos para comprobar:
Código:
echo "<pre>"; print_r($sDatos); echo "</pre>";

se verá así:
Código:
Array
(
    [0] => Array
        (
            [id] => 1
            [campo1] => Juan
            [campo2] => Perez
        )

    [1] => Array
        (
            [id] => 2
            [campo1] => Maria
            [campo2] => Lopez
        )

    [2] => Array
        (
            [id] => 3
            [campo1] => Luis
            [campo2] => Martin
        )

    [3] => Array
        (
            [id] => 4
            [campo1] => mariana
            [campo2] => ruiz
        )

    [4] => Array
        (
            [id] => 5
            [campo1] => karen
            [campo2] => martin
        )

    [5] => Array
        (
            [id] => 6
            [campo1] => kim
            [campo2] => gomez
        )

)

Es una matriz o array bidimencional, accedes a los datos colocando
Código:
$sDatos[aqui el id][aqui la etiqueta del dato]

ejemplo:
Código:
echo $sDatos[4]['campo1'];

Imprime:
Código:
karen

espero te sirva, saludos!
En línea

Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #8 en: 7 Marzo 2011, 17:29 »

Y con lo que te dice cassiani ya lo tienes como querías dejarlo después del for-each, que en mi opinión es peor que como estaba antes. No se tú, pero si yo pongo:
Código:
echo $sDatos[4]['campo1'];

Quiero que imprima:
Código:
mariana
En línea
cassiani


Desconectado Desconectado

Mensajes: 946


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda con arrays dentro de arrays
« Respuesta #9 en: 7 Marzo 2011, 19:13 »

No se tú, pero si yo pongo:
Código:
echo $sDatos[4]['campo1'];

Quiero que imprima:
Código:
mariana

en realidad no, porque la matriz comienza desde 0 y no así la columna Id de la tabla. de todas maneras puedes usar un contador que comience desde 1 o usar el mismo Id de cada registro para agregar elementos al array:

Código
 
while ($row = mysql_fetch_array($result))
$sDatos[$row['idtabla1']]= array
(
'campo1' => $row['campo1'],
'campo2' => $row['campo2']
);
 

y ahí al colocar:
Código:
echo $sDatos[4]['campo1'];

si imprimirá:
Código:
mariana
En línea

Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #10 en: 8 Marzo 2011, 09:08 »

Ya lo sé, pero has puesto id dos veces y con distinto significado, revisa tu post si quieres.

Eso desde un punto de vista de metodología de la programación está muy mal, completamente inaceptable.
En línea
Servia


Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Duda con arrays dentro de arrays
« Respuesta #11 en: 10 Marzo 2011, 09:04 »

Muchas gracias a ambos! Veo que la optimización es muy importante aquí ^^

Una función (soy pesado eh) la cual limpiase el array $_POST cada vez que no lo detectará como vacío, cargaría mucho la página?

El proceso de limpieza como strip_tags y mysql_real_escape_string es mejor que los ponga dentro de una función y la llame dentro del foreach o es mejor ponerlo todo directamente?
Código
if(isset($_POST)){
foreach ($_POST as $p){
strip..
mysql_real....
}}

Código
if(isset($_POST)){
function clean(){
}
foreach ($_POST as $p){
$p=clean($p);
}}
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con los arrays.
Programación C/C++
El_Marine 6 572 Último mensaje 1 Septiembre 2006, 02:30
por El_Marine
Duda Arrays « 1 2 »
Programación C/C++
h0oke 29 1,533 Último mensaje 31 Mayo 2009, 17:21
por h0oke
[Duda] Manejo de arrays « 1 2 »
Programación C/C++
Condor 2.0 18 2,852 Último mensaje 30 Agosto 2009, 16:37
por Anibal784
Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
Java
camaleon123 14 3,256 Último mensaje 1 Enero 2010, 05:23
por camaleon123
Duda sobre arrays
Programación C/C++
pabloide22 7 958 Último mensaje 2 Febrero 2010, 13:13
por Eternal Idol
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines