Foros del Web » Programando para Internet » PHP »

extraer indice de array

Estas en el tema de extraer indice de array en el foro de PHP en Foros del Web. Hola a [email protected]: Necesito saber como extraer el indice de un array. Me explico tengo el siguiente array Código PHP: $datos1 =array( "15000" , "25000" ...
  #1 (permalink)  
Antiguo 06/12/2004, 11:26
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Pregunta extraer indice de array

Hola a [email protected]:
Necesito saber como extraer el indice de un array.
Me explico
tengo el siguiente array
Código PHP:
$datos1=array("15000","25000","50000","75000","100000","150000","200000"); 
busco un dato dentro del array de la forma que sigue:
Código PHP:
in_array "75000"$datos1
Ahora viene el problema ¿como consigo que me de el indice de ese valor? Tendria que ser el 3, vamos que si realizo un
Código PHP:
echo $datos1[3
me tendria que dar 75000.
Gracias
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 06/12/2004, 12:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes las funciones:

array_keys()
http://www.php.net/manual/en/function.array-keys.php

Eso te entrega un array con las ocurrencias (que opcionalmente puedes usar) de tu valor a buscar .. Ten presente que si bien en tu caso no tendías valores duplicados .. en otros casos si que podrías tenerlos .. por eso esta función trabaja entregando arrays.

Un saludo,
  #3 (permalink)  
Antiguo 06/12/2004, 12:32
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Gracias Cluster por responder, pero...... me da el siguiente error
Warning: array_keys(): The first argument should be an array in c:\appserv\www\automoviles\funciones.php on line 131y el trozo de codigo es el que sigue:
Código PHP:
$tabla_dinero_menos=array("5000","10000","15000","20000","100000000");
If (!empty(
$aproxima_datos['presupuesto'])){
$campo[]="presupuesto";
$condicion[]="presupuesto<=".$aproxima_datos['presupuesto'];
$salida =array_keys ($tabla_dinero_menos,"15000");
echo 
$salida;
$a++;


¿Que puede ser?

Gracias por tu paciencia
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #4 (permalink)  
Antiguo 06/12/2004, 13:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Pues parece estár bien el uso de array_keys() .. es decir, ahí se ve tu variable:_ $tabla_dinero_menos definida como array() y con unos valores. ¿ ese es el código completo que usas? .. no estás sobreescribiendo esa variable con otros datos (pasando de un array como parece que es a otro tipo: string/etc..)?

Sólo un detalle:
echo $salida;

ahí te va a mostar siempre "Array" .. no los valores que pueda tener ese array de "coincidencias" .. aunque sea un único valor el esperado .. al menos tendrías que ver en:

echo $salida[0];

El primer elemento del array que va arrojar como resultado .. o mejor todavía usar ahí un bucle foreach() para recorreer sus posibles resultados.

Un saludo,


Un saludo,
  #5 (permalink)  
Antiguo 07/12/2004, 02:46
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola de nuevo Cluster:
A tu pregunta
Cita:
¿ ese es el código completo que usas? .. no estás sobreescribiendo esa variable con otros datos (pasando de un array como parece que es a otro tipo: string/etc..)?
Lo he comprobado y no se sobreescribe, lo unico que pude perjudicar a dicho array es que esta definida dentro de una funcion ¿puede ser eso? Referente a "echo $salida ;" ¿como puedo tomar el indice del array donde coincide el valor?.
Hombre puedo hacer un foreach $clave=>$valorcon un condicional si coincide el $valor que me de el $clave, pero ¿no hay una forma mas directa de hacerlo?.
Un cordial saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #6 (permalink)  
Antiguo 07/12/2004, 05:28
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Ya he "chapuceado" el tema de la forma que sigue


Código PHP:
If (!empty($aproxima_datos['presupuesto'])){ 
$campo[]="presupuesto"
$condicion[]="presupuesto<=".$aproxima_datos['presupuesto']; 
$tabla_dinero_menos=array("5000","10000","15000","20000","100000000"); 
$salidaarray_search '15000'$dinero_menos);
echo 
$salida
$a++; 
}
como se puede comprobar $tabla_dinero_menos lo he movido dentro del if y he utilizado para buscar la clave del valor.
¿por que haciendo esto funciona?
Pos no lo se lo que se es que $tabla_dinero_menos no se declara en otra parte y ni se sobreescriben valores.
Si alguien sabe su explicacion por favor postearla pra futuras consultas.
Un Saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #7 (permalink)  
Antiguo 07/12/2004, 05:41
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Vale,Vale Soy un Torpe y negao
El problema es que
$tabla_dinero_menos=array("5000","10000","15000"," 20000","100000000");
estaba declarada fuera de la funcion (entre dos funciones) y por eso no la pillaba.
Pido disculpas al Foro por esta metedura de pata.
Un Saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #8 (permalink)  
Antiguo 07/12/2004, 07:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para otra vez ya sabese que debes colocar el código -completo- que uses .. en ningún momento ví que usabas una función .. así que tampoco se podría aconsejarte o comentarte que el esl "ambito" de las variables (scope) para decirte que debes declarar esas variabels que uses en la función como globales o pasarselas como parámetro a la función.

Un saludo,
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:28.