Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 29-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Simplemente hazlo por partes, por ejemplo


Código PHP:
// Llenas un arreglo de fechas asignando sólo el campo dia
$fecha[0]['dia'] = strtotime('2004-12-24');
$fecha[1]['dia'] = strtotime('2004-12-28');
$fecha[2]['dia'] = strtotime('2004-12-31');

// llenas un arreglo de operadores
$operador[0] = array(
  
'ope' => 'ope01''Visitas' => '7'
  
'HorasTrabajadas' => '3''EnviosSala' => '5');

$operador[1] = array(
  
'ope' => 'ope02''Visitas' => '3'
  
'HorasTrabajadas' => '12''EnviosSala' => '7');

// asignas estos operadores a la primera fecha
$fecha[0]['operador'] = $operador;

/*
  de la misma forma asignas operadores a la segunda fecha
*/

// asignas el arreglo de fechas a una campana
$campana = array('campana' => '01''descripcion' campana 01');
$campana['
fecha'] = $fecha; 
Por otra parte- aunque es cuestión de estilo de programación - yo cambiaría
algunos nombres. Es confuso hablar de $campana['fecha'] cuando en realidad
son varias fechas; mejor sería $campana['fechas']. Lo mismo con $campana
['fecha'][0]['operador'] ya que son varios operadores, así que mejor sería
$campana['fechas'][0]['operadores'].

También, aunque es prácticamente lo mismo en cuanto a nomenclatura, yo
preferiría usar clases para estructuras tan ramificadas como las que tienes.

Por ejemplo, implementaría estas tres clases:


Código PHP:
class Operador
{
  var 
$operador;
  var 
$visitas;
  var 
$horas_trabajadas;
  var 
$envios_sala;
}

class 
Fecha
{
  var 
$dia;
  var 
$operadores;

  function 
Fecha()
  {
    
$this->operadores = array();
  }
}

class 
Campana
{
  var 
$campana;
  var 
$descripcion;
  var 
$fechas;

  function 
Campana()
  {
    
$this->fechas = array();
  }

Los métodos de una clase los implementas dentro de la misma definición de la
clase. El método cuyo nombre es igual al nombre de la clase es el constructor
donde puedes aprovechar para inicializar algunos valores como en el caso de
Fecha y Campana en donde inicializo las propiedades operadores y fechas a
arreglos vacíos.

$this, dentro de una clase es equivalente al Self de Delphi.

Para instanciar una clase usas su constructor y el operador new:


Código PHP:
$campana = new Campana(); 
Cada elemento del arreglo $campana->fechas deberás crearlo también con
new Fecha() y lo mismo para la propiedad operadores de la clase Fecha. Aquí
algunos ejemplos:


Código PHP:
// llenar campos descriptivos de $campana
$campana->campana '01';
$campana->descripcion 'primera campana';

// agregar dos instancias de la clase Fecha al arreglo $campana->fechas
$campana->fechas[0] = new Fecha();
$campana->fechas[0]->dia strtotime('2004-01-01');

$campana->fechas[1] = new Fecha();
$campana->fechas[1]->dia strtotime('2004-01-02');

// agregar dos operadores a la fecha 0
$campana->fechas[0]->operadores[0] = new Operador();
$campana->fechas[0]->operadores[0]->operador 'ope01';

$campana->fechas[0]->operadores[1] = new Operador();
$campana->fechas[0]->operadores[1]->operador 'ope02';

// agregar tres operadores a la fecha 1
$campana->fechas[1]->operadores[0] = new Operador();
$campana->fechas[1]->operadores[0]->operador 'ope03';

$campana->fechas[1]->operadores[1] = new Operador();
$campana->fechas[1]->operadores[1]->operador 'ope01';

$campana->fechas[1]->operadores[1] = new Operador();
$campana->fechas[1]->operadores[1]->operador 'ope12'
A un constructor le puedes pasar parámetros para facilitar un poco la
escritura. Por ejemplo, el constructor de la clase Fecha lo puedes cambiar
así:


Código PHP:
  function Fecha($dia)
  {
    
$this->dia $dia;
    
$this->operadores = array();
  } 
de manera que


Código PHP:
// agregar dos instancias de la clase Fecha al arreglo $campana->fechas
$campana->fechas[0] = new Fecha();
$campana->fechas[0]->dia strtotime('2004-01-01');

$campana->fechas[1] = new Fecha();
$campana->fechas[1]->dia strtotime('2004-01-02'); 
lo reduces a


Código PHP:
$campana->fechas[0] = new Fecha(strtotime('2004-01-01'));
$campana->fechas[1] = new Fecha(strtotime('2004-01-02')); 
Finalmente, aunque no venga al caso, cuando tengo estructuras tan
ramificadas suelo poner:


Código PHP:
<pre>
<?
  print_r
($campana);
?>
</pre>
para poder ver la estructura completa y saber así si estoy en el camino correcto en la jungla .

// Saludos

Última edición por roman fecha: 29-12-2004 a las 21:09:48.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:22:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi