Foros del Web » Programando para Internet » PHP »

Elemento en array!

Estas en el tema de Elemento en array! en el foro de PHP en Foros del Web. Como puedo saber que n° de tiene un elemento dentro de un array.. por ejemplo, si tengo: $matriz=array('d','g','e','b','x'); y quiero saber el indice de por ...
  #1 (permalink)  
Antiguo 12/04/2009, 18:15
 
Fecha de Ingreso: abril-2007
Mensajes: 112
Antigüedad: 17 años
Puntos: 1
Elemento en array!

Como puedo saber que n° de tiene un elemento dentro de un array..

por ejemplo, si tengo:

$matriz=array('d','g','e','b','x');

y quiero saber el indice de por ejemplo la "e" y que me devuelva "2"...

como hago esto??

Gracias
  #2 (permalink)  
Antiguo 12/04/2009, 18:17
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
ola este es para saber el total , de los vbalores

Código PHP:
$matriz=array('d','g','e','b','x');

$total count($matriz);

echo 
$total 







saludos

este s para buscar el elemento


Código PHP:

$matriz
=array('d','g','e','b','x');
$total count($matriz);
$indice ;

for(   
$i=0;   $i<$total;   $i++    ){

     if(
$matriz[$i] == "e") {
            
$indice $i ;
            break ; 
       }

}



echo 
$indice 





saludos

Última edición por GatorV; 13/04/2009 a las 07:52
  #3 (permalink)  
Antiguo 12/04/2009, 18:40
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Elemento en array!

Y por qué no hacerlo como todos? -> array_search()
Código php:
Ver original
  1. $matriz=array('d','g','e','b','x');
  2.  
  3. $indice = array_search('e', $matriz);

  #4 (permalink)  
Antiguo 12/04/2009, 18:43
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
Respuesta: Elemento en array!

de igual forma, :) basicamente el array_Search es mas rapido :) pero de igual forma las dos formas funcionan, solo que una es mas codigo :)
  #5 (permalink)  
Antiguo 12/04/2009, 19:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Elemento en array!

No sé si sea más rápido, y si lo es, te puedo asegurar que la diferencia será de unos nanosegundos, nada más. No se trata de velocidad.
Saliéndome un poco del tema inicial. Mucho se debate sobre la optimización de aplicaciones y procesos en general, y esto de "optimizar" está muy ligado a los conceptos de eficacia y eficiencia.

No quiero escribir sobre ellos, pero voy a citar un extracto de un mensaje que habla sobre ellos a mi parecer muy claramente.
Cita:
  • Eficiencia como la relación entre esfuerzos y resultados. Si otienes más resultados de un esfuerzo determinado, habrá incrementado tu eficiencia. Asimismo, si puedes obtener el mismo resultado con menos esfuerzo, habrás incrementado tu eficiencia. En otras palabras Eficiencia consiste en realizar un trabajo o una actividad al menor costo posible y en el menor tiempo, sin desperdiciar recursos económicos, materiales y humanos; pero a la vez implica calidad al hacer bien lo que se hace.
  • Eficacia sería simplemente la consecución de unas metas, independientemente de los recursos empleados.
Por ello, hemos de tener en cuenta que ambos conceptos parten de visiones diferentes.
Siempre digo que el concepto de "eficiente" es MUY relativo. Lo que es eficiente para mi puede no serlo para otros, ya que en la eficiencia de determinado proceso entra en juego muchas variables "propias" y "ajenas".

Mira esta imagen:



No basta con ser eficaz o eficiente aisladamente. Se requiere ambas cosas, y ahí hablamos de efectividad.
A lo que voy con esto es que no se trata sólo de velocidad. Si queremos ir de A a B y se nos da el camino "directo" para ello, es más eficiente seguir ese camino, sabiendo que estaremos siendo a la vez eficaces pues llegamos al punto deseado. Como obtenemos lo que queremos y lo hacemos usando de la mejor manera los recursos que se nos da, entonces somos efectivos. Pero si en vez de seguir el camino A-B seguimos en A-G-H-U-X-B estaremos siendo eficaces, pues llegamos igual a B, pero la eficiencia, y por lo tanto, la efectividad de nuestro proceso, habrá disminuido, y no porque nos demoremos más, sino porque hemos empleado más recursos de los necesarios para llegar al mismo fin.

Es cierto, como dices, ambas son formas válidas. Pero no por ello significa que sean "iguales".

En fin, con todo esto no quiero empezar una discusión, y si me he salido mucho del tema inicial pido disculpas. Pero eran conceptos que quise compartir y creo que son necesarios para lograr un buen resultado final (Repito: el que el resultado final de un script PHP sea bueno o malo no depende sólo de la velocidad o de la carga que esto represente al servidor).

  #6 (permalink)  
Antiguo 12/04/2009, 19:41
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Elemento en array!

okram:

Sin mucho animo de continuar estos interesantes temas,
un programador primero debe ser EFICAZ y como segundo
trabajo seria la EFICIENCIA.
Es decir que si por x o y razon desconoces la funcion array_search()
y diseñas tu propia funcion, estarias siendo EFICAZ e INEFICIENTE.
Pero si haces todo mal y no logras cumplir tu objetivo, estarias
siendo INEFICAZ y talvez EFICIENTE en cuanto a algunos codigos.

Saludos
Franco
  #7 (permalink)  
Antiguo 12/04/2009, 20:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Elemento en array!

Si, pero si a la vez llegas a conocer la función array_search(), entonces no hay porque reinventar la rueda. Pero tienes razón, a todos nos ha pasado que creamos una función y luego nos damos cuenta que PHP ya trae una función predefinida para lo que necesitamos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:58.