Autor Tema: [Clase] Trabajando con arreglos  (Leído 1489 veces)

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
[Clase] Trabajando con arreglos
« en: 09 de Abril de 2011, 22:20:58 pm »
¡Hola!

El día de hoy me puse a crear una clase que podría serme útil en algún momento, esta sirve para trabajar con arreglos (arrays). Por ahora lo único que se me ha ocurrido es hacer funciones para volver al revés el array, mezclarlo aleatoriamente, correrlo e imprimirlo (algo como print_r pero más personalizado :P).

Es una clase algo sencilla y tonta, pero sin duda fue una buena manera (para mi) de pasar el tiempo libre sin aburrirme xD

Acá está la clase:

Código: [Seleccionar]
<?php
class arreglo
{
private $arreglo;
private $cuenta;

/* Construyo la función principal para pasar los parámetros del array */
function __construct($xArray)
{
$this->arreglo $xArray;
$this->cuenta = (is_array($xArray)) ? count($xArray) : strlen($xArray);
}

/* Imprimir un array */
function mostrar()
{
if(!is_array($this->arreglo))
{
echo $this->arreglo;
}
else
{
echo &#39;Array<br />(<br />&#39;;
foreach($this->arreglo as $indice => $valor)
{
echo &#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#39;.$indice.&#39;] =&gt; &#39;.$valor.&#39;<br />&#39;;
}
echo &#39;)<br>&#39;;
}
}

/* Mover un array */
function correr($x)
{
if(!is_array($this->arreglo))
{
$this->toArray();
$this->correr($x);
$this->toString();
}
else
{
for($i 0$i $x$i++)
{
$v $this->arreglo[($this->cuenta 1)];
array_unshift($this->arreglo$v);
array_pop($this->arreglo);
}
}
}

/* Darle vuelta al array */
function volver()
{
$tmp $this->arreglo;

for($i 0$i $this->cuenta$i++)
{
$this->arreglo[$i] = $tmp[($this->cuenta 1) - $i];
}
}

/* Barajar el array */
function barajar()
{
$usados = array();
$tmp $this->arreglo;

for($i 0$i $this->cuenta$i++)
{
while(1)
{
$x mt_rand(0$this->cuenta 1);

if(!in_array($x$usados))
{
$usados[] = $x;
$this->arreglo[$i] = $tmp[$x];
break;
}
}
}
}

/* Convertir el array en string */
function toString()
{
if(!is_array($this->arreglo))
{
die(&#39;Solo se puede convertir un array en un string.&#39;);
}
else
{
$tmp $this->arreglo;
$this->arreglo = &#39;&#39;;
for($i 0$i $this->cuenta$i++)
{
$this->arreglo .= $tmp[$i];
}
}
}

/* Convertir el string en array */
function toArray()
{
if(!is_array($this->arreglo))
{
$tmp $this->arreglo;
unset($this->arreglo);
for($i 0$i strlen($tmp); $i++)
{
$this->arreglo[] = $tmp[$i];
}
$this->cuenta count($this->arreglo);
}
else
{
die(&#39;Solo se puede convertir un string en un array.&#39;);
}
}
}
?>

Y ahí pueden ir jugando y experimentando con sus funciones jeje, espero que les guste. Cualquier arreglo o recomendación me la dicen por este mismo post :D

Saludos ^^
« Última modificación: 09 de Abril de 2011, 23:17:12 pm por Warlox »
- Moderador de PHP


Comunidad PHPeros

[Clase] Trabajando con arreglos
« en: 09 de Abril de 2011, 22:20:58 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Clase] Trabajando con arreglos
« Respuesta #1 en: 09 de Abril de 2011, 22:25:26 pm »
Tu y tu aburrimiento.. xD
De algo me servirá, no se de que pero me servirá...
Twitter: @JoakoM010



Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Clase] Trabajando con arreglos
« Respuesta #2 en: 09 de Abril de 2011, 22:33:43 pm »
Gracias!, claro que puede servir, como por ejemplo para un juego de naipes o de lotería, claramente puede servir para revolver las cartas o cualquier cosa que se te ocurra :P
- Moderador de PHP


Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Clase] Trabajando con arreglos
« Respuesta #3 en: 09 de Abril de 2011, 22:54:02 pm »
Actualizo:

Agregué dos nuevas funciones a la clase: toString() y toArray(), las cuales sirven para convertir el arreglo en una cadena o viceversa.
- Moderador de PHP


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Clase] Trabajando con arreglos
« Respuesta #4 en: 09 de Abril de 2011, 23:02:29 pm »
La estructura orientada a objetos, las validaciones y tal me gustaron, pero lo único que no me gustó fueron las impresiones y los die() forzados dentro de las clases XDD...

Sobre las impresiones supongo que es porque querías hacer algo como el print_r según comentaste, así que bueno no pasa nada, y lo del die() sería mejor arrojar excepciones o algo por el estilo x)

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Clase] Trabajando con arreglos
« Respuesta #5 en: 09 de Abril de 2011, 23:07:43 pm »
Me siento jodedor de códigos ._. Pero...
volver() sería array_reverse()
barajar() sería shuffle()
toString() podría resumirse en implode('', $array);
toArray() podría resumirse en explode('', $array); // de este no estoy tan seguro...

además, lo primero que usas para convertir cada caracter a un parametro podría simplificarse con str_split($cadena)

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Clase] Trabajando con arreglos
« Respuesta #6 en: 09 de Abril de 2011, 23:20:30 pm »
Demonios West xD. Lo que pasa es que estaba sin internet y me aburría demasiado jeje, así que me puse a crear las funciones por mí mismo, así las entiendo mejor y tal xD.

---------

Actualizo:

Ahora se pueden hacer todas las funciones de la clase también con strings :D
- Moderador de PHP


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Clase] Trabajando con arreglos
« Respuesta #7 en: 09 de Abril de 2011, 23:23:48 pm »
Demonios West xD. Lo que pasa es que estaba sin internet y me aburría demasiado jeje, así que me puse a crear las funciones por mí mismo, así las entiendo mejor y tal xD.

---------

Actualizo:

Ahora se pueden hacer todas las funciones de la clase también con strings :D

No, si como trabajo de crear las funciones es extraordinario, yo habría estado una burrada de tiempo para eso xD, pero a efectos practicos, es mejor usar las predefinidas xD