Autor
|
Tema: Duda con arrays dentro de arrays (Leído 7,239 veces)
|
Servia
Desconectado
Mensajes: 346
|
Pongamos que tengo: $datos[$info['id']]=$info['nombre']; }
Si ahora quiero que este array [array ( id -> nombre)] lleve otro campo, como debería hacerlo? $datos[$info['id']]=$info['nombre']; $datos[$info['id']]['apellido']=$info['apellido']; }
Esto funcionaría? Si hiciese 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
Mensajes: 1.125
|
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
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
Servia
Desconectado
Mensajes: 346
|
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
Mensajes: 112
Esperando respuestas
|
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: $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
Mensajes: 1.125
|
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
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
Stoya
Desconectado
Mensajes: 112
Esperando respuestas
|
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
Mensajes: 346
|
Y entonces el foreach como debería ir? O ya está bien como lo he puesto ?
|
|
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
Servia, haber si es esto lo que buscas, te dejo un ejemplo: Teniendo una tabla con los siguientes datos: +----------+---------+--------+ | 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: ( 'id' => $row['idtabla1'], 'campo1' => $row['campo1'], 'campo2' => $row['campo2'] );
Luego mostramos para comprobar: echo "<pre>"; print_r($sDatos); echo "</pre>"; se verá así: 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 $sDatos[aqui el id][aqui la etiqueta del dato] ejemplo: echo $sDatos[4]['campo1']; Imprime: espero te sirva, saludos!
|
|
|
En línea
|
|
|
|
Stoya
Desconectado
Mensajes: 112
Esperando respuestas
|
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: echo $sDatos[4]['campo1']; Quiero que imprima:
|
|
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
No se tú, pero si yo pongo: echo $sDatos[4]['campo1']; Quiero que imprima: 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: $sDatos[$row['idtabla1']]= array ( 'campo1' => $row['campo1'], 'campo2' => $row['campo2'] );
y ahí al colocar: echo $sDatos[4]['campo1']; si imprimirá:
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda con arrays o matriz?
Programación Visual Basic
|
ricardovinzo
|
4
|
4,015
|
10 Junio 2008, 23:36 pm
por CeLaYa
|
|
|
Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
« 1 2 »
Java
|
camaleon123
|
14
|
13,261
|
1 Enero 2010, 05:23 am
por camaleon123
|
|
|
[BATCH] Duda sobre ¿Arrays? [Solucionado]
Scripting
|
Karcrack
|
3
|
5,561
|
4 Febrero 2011, 15:44 pm
por Edu
|
|
|
Duda sobre Arreglos(Arrays)
Java
|
Senior++
|
2
|
2,135
|
7 Diciembre 2012, 17:09 pm
por Senior++
|
|
|
Funcion RecomendarButacas Ayuda!! (Recorrer arrays de arrays)
Java
|
elenfatico
|
2
|
2,976
|
7 Abril 2016, 00:44 am
por 50ShadesOfKenyi
|
|