Foros del Web » Programando para Internet » PHP »

contar ciertos caracteres en una cadena

Estas en el tema de contar ciertos caracteres en una cadena en el foro de PHP en Foros del Web. hola, alguien conoce alguna funcion, o alguna forma de contar la cantidad de apariciones de un caracter dentro de una cadena, por ejemplo: en $cadena="hola ...
  #1 (permalink)  
Antiguo 20/07/2009, 10:17
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
contar ciertos caracteres en una cadena

hola,

alguien conoce alguna funcion, o alguna forma de contar la cantidad de apariciones de un caracter dentro de una cadena,

por ejemplo: en $cadena="hola mundo que tal, como estan"; que me cuente la cantidad de "o" presentes en esa cadena
gracias saludos...
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #2 (permalink)  
Antiguo 20/07/2009, 10:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: contar ciertos caracteres en una cadena

Puedes usar substr_count.

Saludos.
  #3 (permalink)  
Antiguo 20/07/2009, 10:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: contar ciertos caracteres en una cadena

substr-count
  #4 (permalink)  
Antiguo 20/07/2009, 10:36
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
De acuerdo Respuesta: contar ciertos caracteres en una cadena

gracias a ambos, justo lo que buscaba, de hecho lo pensaba hacer con expresiones regulares, pero esa funcion substr_count() es mas directo

gracias, siempre oportunos,saludos
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #5 (permalink)  
Antiguo 20/07/2009, 10:45
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: contar ciertos caracteres en una cadena

Cita:
Iniciado por gabrielflowers Ver Mensaje
hola,

alguien conoce alguna funcion, o alguna forma de contar la cantidad de apariciones de un caracter dentro de una cadena,

por ejemplo: en $cadena="hola mundo que tal, como estan"; que me cuente la cantidad de "o" presentes en esa cadena
gracias saludos...
Hola ,como estás? lo que podrias hacer es algo como lo siguiente:

Código PHP:
<?php

/**
 * Script Author: Jonatan Lucio Casagrande <[email protected]>
 * Script Function:
 * Script Info: -
 */

$caracter_busqueda 'A'//-- El caracter a buscar

$coincidencias '0'//-- El contador de coincidencias inicializado en 0

$cadena_texto $_GET['cadena_texto']; // -- Aca tenes que modificarlo por $cadena_texto='tu texto';

$caracteres_cadena strlen($cadena_texto); //-- Aca cuenta la cantidad de caracteres de cadena_texto

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

    if (
$cadena_texto{$i} == $caracter_busqueda) { //-- Compara el offset contra el caracter busqueda

        
$coincidencias $coincidencias 1//-- Si son iguales incrementa en uno el contador

    
}

}

echo 
"Se registraron {$coincidencias} del caracter {$caracter_busqueda} en el texto procesado";


?>

Saludos! :)
  #6 (permalink)  
Antiguo 20/07/2009, 13:38
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
De acuerdo Respuesta: contar ciertos caracteres en una cadena

gracias jonatanc, pero me quedo con la funcion substr_count() por q es mas directo hacerlo asi, de todos modos muchas gracias por el interes, saludos

pdta:cada vez queda mas claro que generalmente existe mas de una forma de resolver un problema, y solo nos queda encontrar cual es la mas optima...
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."

Última edición por gabrielflowers; 20/07/2009 a las 13:55
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 12:23.