Foros del Web » Programando para Internet » PHP »

Buscar keys en un array

Estas en el tema de Buscar keys en un array en el foro de PHP en Foros del Web. Hola gente ¿cómo estan? Tengo un problema con arrays, es más de lógica el problema, pero les cuento a ver si me pueden ayudar. Hago ...
  #1 (permalink)  
Antiguo 02/08/2004, 10:11
 
Fecha de Ingreso: septiembre-2003
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Buscar keys en un array

Hola gente ¿cómo estan?
Tengo un problema con arrays, es más de lógica el problema, pero les cuento a ver si me pueden ayudar.

Hago una consulta MySQL y ordeno los resultados por orden alfábetico. Después a los ID de cada item obtenido los guardo en un array.
Ejemplo:

Código:
$array[1] = 4;
$array[2] = 8;
$array[3] = 20;
$array[4] = 45;
$array[5] = 7;
Ahora bien, yo tengo, por decir algo, el valor 20, busco el dentro del array ese valor (en este caso es el key 3) e imprimo todos los otros campos de ese item (a través de otra consulta MySQL). Lo que necesito hacer ahora es saber cuál es el valor del key que le sigue, y el key que le antecede. En este caso, necesito saber los valores de los keys 2 y 4, para poder hacer nuevas consultas sobre esos valores (IDs).

Es para implementar en navegación el tipo "anterior" y "siguiente". Cómo los tengo ordenado alfabeticamente, incrementar simplemente el valor del ID no me da resultado, porque los campos fuerons insertados de manera aleatoria.

Espero me puedan dar una mano con esto, estoy re-trabado. Quizas no estoy usando un buen método, por eso recurro a ustedes.

Gracias de antemano.
  #2 (permalink)  
Antiguo 02/08/2004, 10:31
 
Fecha de Ingreso: julio-2003
Mensajes: 141
Antigüedad: 14 años, 5 meses
Puntos: 5
Mira a ver si esto te vale ...

gasta las funciones prev(),next().key(),ksort() ...
prev() php.net
next() php.net

Código PHP:
$vector=array(0=>'cero',1=>'uno',2=>'dos',3=>'tres',4=>'cuatro',5=>'cinco');

print_r($vector);
print 
"<br>";

while ( list(
$clave,$valor) = each($vector) ) {
        if ( 
$valor == 'tres' ) {
                
$siguiente key($vector);
                print 
"clave siguiente = $siguiente<br>";
                
$anterior prev($vector);
                
$anterior prev($vector);
                
$anterior key($vector);
                print 
"clave anterior = $anterior<br>";
                break;
        }

Ahi tienes algo de guía, es muy simple y seguro se puede perfeccionar, ya que no he tenido en cuenta si las claves que buscamos son la primera o la ultima del array, por lo que tendras que modificarlo.

Saludos y espero te haya entendido ;)

Última edición por Daca; 02/08/2004 a las 11:54
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 23:41.