Foros del Web » Programando para Internet » PHP »

Buscar dentro de una cadena o String...

Estas en el tema de Buscar dentro de una cadena o String... en el foro de PHP en Foros del Web. Hola Foro como puedo buscar en una cadena o String 2 caracteres, como seria el codigo para hacer la busqueda. ejemplo de cadena o String: ...
  #1 (permalink)  
Antiguo 15/08/2006, 13:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 372
Antigüedad: 12 años, 8 meses
Puntos: 1
Buscar dentro de una cadena o String...

Hola Foro como puedo buscar en una cadena o String 2 caracteres, como seria el codigo para hacer la busqueda.

ejemplo de cadena o String:

$cadena="|AE|10.20|BC|45.89|TR|78.56|HJ|78.58|GH|1 4.58";

Ahora el usuario introduce en un formulario que caracteres y valor quiere buscar

ejemplo:
caracter a buscar: BC
Resultado de la busqueda:
caracter:BC valor:45.89

caracter a buscar: TR
Resultado de la busqueda:
caracter:TR valor:78.58

caracter a buscar: GH
Resultado de la busqueda:
caracter:GH valor:14.58

no se si es muy complicado o facil creo que con funciones de cadena se podria hacer pero no tengo idea como me podrian ayudar con esto, muchas gracias.

Nota: los caracteres estan separados por un (|)
  #2 (permalink)  
Antiguo 15/08/2006, 14:33
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 12 años, 3 meses
Puntos: 0
Acabo crear una función especialmente hecha para tí ;D.

Código PHP:
function search_key_string($value$string)
{
    
$cadena $string;
    
$array explode("|"substr($cadena1strlen($cadena) - 2));
    
$max count($array);
    for (
$i 0$i <= $max$i $i 2)
    {
    
$array[$array[$i]] = $array[$i 1];
    }
    
$h 0;
    
array_pop($array);
    while (
$h $max)
    {
        
array_shift($array);
        
$h++;
    }
    
$search_word $value;
    
$llaves array_key_exists($search_word$array);
    if (
$llaves)
    {
        return 
$array[$search_word];
    }else{
        return 
false;
    }
}
echo 
search_key_string("CD""|AX|10.3|CD|5.10|"); // imprime 5.10 
Ojo: La estructura de la cadena no debe cambiar, sino, lanzará un error o el Script no fucionará! Y la cadena debe terminar con "|" o sino, posiblemente ocurrirá un error.

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #3 (permalink)  
Antiguo 15/08/2006, 17:08
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 14 años
Puntos: 4
Aquí tienes otra opcion. Creo que hace lo mismo pero con menos codigo:
<?php
$cadena = "|AE|10.20|BC|45.89|TR|78.56|HJ|78.58|GH|14.58 ";
$array = explode ('|', $cadena);
$buscar = 'GH';
$posicion = array_search ( $buscar, $array);
$valor = $array[$posicion + 1];
echo "Cararcter a buscar: $buscar<br/>Resultado de la busqueda:<br/>Caracter: $buscar valor: $valor";
?>
Espero te haya servido de algo.
  #4 (permalink)  
Antiguo 15/08/2006, 17:19
Avatar de phprim  
Fecha de Ingreso: julio-2006
Ubicación: En mi trabajo
Mensajes: 90
Antigüedad: 11 años, 4 meses
Puntos: 0
buscar en cadenas

ambas opciones de arriba son validas, cuestion de elegir simplemente
aunque array_search(); es mas rápida
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:21.