PHP: magia con los arreglos

Por algunas horas estuve muy arrepentido de no haber estado en las clases de programacion en C en la universidad(venia de otra U, asi que la convalide y “decidi” no entrar de oyente y perder el tiempo por ahi…estudiando calculo integral xq estaba en panga).

Hoy realmente lo necesite: tenia una situacion en PHP y la solucion claramente en hacer un algoritmo que de una lista de cadenas de “strings” extrajera los valores unicos(todos los no repetidos, y los repetidos solo 1 vez; estilo MySQL DISTINCT).

Mi cabeza penso y solo encontro un “vacio” en la seccion de “algoritmos basicos de programacion’…muy, muy arrepentido .

Lo primero que hice fue “inventar” el algoritmo con una vieja favorita: la prueba de escritorio.  De acuerdo a mi parecer, el algoritmo que probe en papel estaba bueno, pero cuando fui a programarlo en vez de extraer una lista de valores unicos, duplico y triplico hasta los miles la cantidad de valores…que paso ahi? No tengo idea; y no tengo tiempo para averiguarlo xq tengo que terminar este task!

Afortunadamente, hay dos(2) funciones en PHP que me “sacaron del hoyo” en esta ocasion:

array_unique es una funcion que retorna un nuevo arreglo con todos los valores unicos de un arreglo de valores repetidos.

ejemplo:

Screen Shot 2013-04-01 at 1.14.54 AM

Tiene tres elementos importantes:

los compara como “strings”

la condicion es esta: si $string1 === $string2 , guarda el $string1 en el nuevo arreglo(es decir, siempre agarra la primera instancia que encuentra del valor, aunque se repita mas adelante en el arreglo)

mantiene los indices/llaves originales: esto es SUPER importante recordarlo porque si los valores son 3,6,8,32,44,54,64 asi mismo te los guarda en el arreglo nuevo, tiempo de $array[54] = “string!”;

Si necesitas que los indices esten en orden de nuevo (tipo 0,1,2,3…) tienes que hacer un truco mas…

para mi caso en particular, necesitaba el segundo truco, porque no me gustan los indices en desorden(y te “hacen perder tiempo” si quieres recorrer el arreglo).

El segundo truco viene con la funcion array_values : esta funcion te retorna un arreglo con los “valores” del arreglo original, en una lista(o arreglo, no se) consecutiva(es decir, con indices 0,1,2,3…)

ejemplo:

array_values

con esta, ya tienes un arreglo con los valores unicos, y ademas ordenados.

Encontrar estas funciones me ha salvado y ojala te ayuden a ti tambien mas adelante.  En PHP hay muchisimas funciones para muchisimas cosas que quizas solo son relevantes un par de veces en la vida, pero hay que estar agradecido de que Lerdorf y el quipo de PHP pensaron en muchas, muchas posibilidades :D

Anuncios

Primera Falla de Google Chrome

Google Chrome no abre bien el webapp de mi trabajo!
Google Chrome no abre bien el webapp de mi trabajo!

La primera falla (para mi) es…que desordena un webapp de mi trabajo.

Al parecer, Chrome aun no se lleva bien con la interfaces que Journyx tiene.  Por cierto, Firefox no tiene ningun problema.

Por lo demas…realmente el browser ESTA PRITTYSON(es decir: es bueno); lo cual es algo que me preocupa porque soy un fiel seguidor de Firefox desde tiempos inmemorables.  Realmente es una movida algo sucia de los Googlesinos sacar un browser despues de renovar contrato con la Fundacion Mozilla para que Firefox siga teniendolos de buscador principal.

TV por Internet: O Miro, o Veo(h)?

Ya hace varios dias que he estado metido en la ola de IPTV, y bueno he estado viendo “programacion” de dos de las aplicaciones mas recientes en surgir: estamos hablando de Miro y Veoh. Ciertamente servicios como Joost ya han tenido mas tiempo en el mercado, pero requiere mucho poder(y mi laptop no lo tiene) asi que me he abstenido de usarlo mucho. En esta edicion estaremos hablando un poco sobre Miro. Sigue leyendo

La “Magia” Detrás de YouTube

Saludos tecnopatas!  Para el estreno de la 2da temporada de Tecnopata507, les traemos un articulo muy interesante; estamos hablando de la arquitectura que sostiene a tu sitio de videos favorito, que DEBE SER YouTube.  Se menciona las conexiones, los servidores, los data centers(que son varios), el antes y despues de Google, etc.   DATITO: hay mucho OpenSource de por medio.

 Youtube Arquitecture

Me pareció totalmente interesante; sobretodo la escalabilidad que estan logrando en concepto de “software como servicio”.  Al final tienen “lecciones aprendidas”.  Si eres tecnopata, es tu deber social leer esto; si no lo eres, los “Detrás de las cámaras” siempre quedan buenos asi que leelo!

MediaMaster: Tu musica, realmente donde sea!(una vez mas…)

mediamasterRodando por la red, y visitando a los amigos(Tecnochica.com) veo el servicio de MediaMaster: una BASTANTE VIEJA idea, que ahora parece que si va a funcionar.

Digo bastante vieja, porque desde los tiempos de Napster(el original, no esa basura a 0.99 centavos) habian “lockers” en internet para subir todas tus canciones y guardarlas para accederlas despues. Esos intentos no funcionaron, quizas por la caida de las empresas web en el 2000 no se, pero se ve interesante. Incluso tienen un video todo solido sobre como funciona.

Por ahora las musica DRM-eada no funciona. Abajo iTunes!(mi cabeza podria rodar por ese comentario)

link: MediaMaster

Lo voy a probar personalmente, y les dire como me fue.

PD: saludos a las Tecnochicas!