PHP - Array Multidimension Dinamicos

 
Vista:

Array Multidimension Dinamicos

Publicado por julio (54 intervenciones) el 06/04/2007 22:13:16
Necesito usar Array (o matriz) multidimensional en forma dinamica: La teoria que tengo a mi disposicion no me ayuda con esto.
En Clipper yo usaba array multidimensionales en forma dinamica, y en Visual Basic tambien podia hacer lo mismo dfiniendo un tipo de usuario -que tenia la forma de un registro- y luego definia el array en forma dinamica del tipo de dato que yo defini. Todo esto me funcionaba perfecto.

Dinamico digo,,, en la medida que deseo insertar mas datos hacia crecer el puntero del array y luego insertaba los datos nuevos.

por ejemplo (a los fines de graficar mejor la idea)
------------------------------------------------------------------
nombre departamento puesto
------------------------------------------------------------------
Esteban compras encargado
Rafael compras administrativo
Jesica compras operadora
Fernando ventas vendedor
Marta ventas operadora
Lorena ventas despacho
------------------------------------------------------------------
asi.... ingresaba miles miles y luego los trabajaba a gusto mi. Generalmente eran datos frutos de una consulta, o la lectura de un archivo de texto, que a veces necesita descartar
alguno de los registros obtenidos.

¿Es posible en PHP usar los array mulidimensionales en forma dinamica? ¿Còmo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:Array Multidimension Dinamicos

Publicado por Yamil Bracho (888 intervenciones) el 08/04/2007 03:17:05
Si, por supuesto. Puedes crear arreglos dinamicos en PHP. Lo mas conveniente es que crees una clase que contenga la data basica por fila, es decir, una clase que tenga Nombre, Departamento y Cargo. Digamos que esta clase se llama Persona
Entonces haces:

$datos[] = new Persona("Esteban", "Compras", "Encargado");
$datos[] = new Persona("Rafael", "Compras", "administrativo ");

y asi sucesivamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Array Multidimension Dinamicos

Publicado por julio (54 intervenciones) el 08/04/2007 22:39:03
$datos[] = new Persona("Esteban", "Compras", "Encargado");
$datos[] = new Persona("Rafael", "Compras", "administrativo ");

Encontre pista en bibliografia...pero no me queda claro. Por Ejemplo en Visual Basic yo definia un dato type registro

Type REgistro
Nombre= string
Departamento= string
Puesto= string
En type

luego definia un Array

Array() as Registro

Luego lo hacia crecer incrementando el puntero

i=i+1
Array(i).Nombre=varNombre
Array(i).Departamento=varDepartamento
Arrya(i).Puesto=varPuesto

(es algo asi el codigo en Vsual Basic -esta funcionando en aplicaciones que desarrolle)

O sea trataba a los array multidmensionales, pero era complicado. De esta forma Definiendo un dato Type me facilitaba todo.

En Visual Basic lo recuperaba
for i=0 to len(array)
Nombre=Array(i).Nombre
Puesto=Array(i).Puesto
Departamento=Array(i)=Departamento
next

Asi llevaba todo el registro
Mi pregunta como hago en PHP para que crezca el Array en forma dinamica y luego como lo recupero.
De todas formas gracias por orientarme. Lo probarè. Agradecerè si alguien puede clarificarme mi duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:Array Multidimension Dinamicos

Publicado por Yamil Bracho (888 intervenciones) el 09/04/2007 20:04:56
Si es casi lo mismo.
Lo que pasa es que PHP no es "fuertemente tipeado". Solo agregar datos al arreglo sin importar su tipo y tampoco tienes porque dimensionarlo ya que son dinamicos. Tu codigo VB seria en PHP algo como:

class Registro
var $nombre;
var $departamento;
var $puesto;

public __ construct($nombre, $departamento, $puesto) {
$this->nombre = $nombre;
$this->departamento = $departamento,
$this->puesto = $puesto;

}

$Array[] = new Registro($varNombre, $varDepartamento, $varPuesto)

para recuperarlos

for ($i = 1; $i <= count($Array); $i++) {
$varNombre=$Array[i]->nombre;
$varPuesto = $Array[i]->puesto;
$varDepartamento=$Array[i]->departamento;
}

Como ves son bastantes parecidos :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar