Hace unos días estaba en Facebook y alguien solicitó un ejercicio en PHP que decía algo así:

Crear el código necesario para contar las letras de una cadena en PHP e imprimir la letra seguido de las veces que aparece. Por ejemplo:

A=10

B=20

Hoy vengo a mostrar el código.

Contar letras de cadena en PHP

El ejercicio tenía sus requisitos y uno de ellos era no usar arreglos y otras funciones que no recuerdo, así que lo que hice fue crear una cadena con todas las letras del abecedario:

<?php
$letras = "abcdefghijklmnopqrstuvwxyz";
$letras .= strtoupper($letras);

Cuando ya tenía las letras, recorría la cadena y dentro de ese ciclo tenía otro ciclo que recorría al texto al cual se le contarían las letras:

<?php
for ($i = 0; $i < strlen($letras); $i++) {
    $letra = $letras[$i];
    $contador = 0;
    for ($x = 0; $x < strlen($texto); $x++) {
        $actual = $texto[$x];
        if ($actual === $letra) {
            // Letra encontrada :)
        }

    }
}

Como se puede ver, se inicia un contador en cada letra del abecedario, después se comprueba cuántas veces aparece y se aumenta un contador. Finalmente, si el contador es mayor a 0, se imprime la letra con su conteo.

Código completo para contar letras de string en PHP

El código con una demostración queda así:

<?php
/*

  ____          _____               _ _           _       
 |  _ \        |  __ \             (_) |         | |      
 | |_) |_   _  | |__) |_ _ _ __ _____| |__  _   _| |_ ___ 
 |  _ <| | | | |  ___/ _` | '__|_  / | '_ \| | | | __/ _ \
 | |_) | |_| | | |  | (_| | |   / /| | |_) | |_| | ||  __/
 |____/ \__, | |_|   \__,_|_|  /___|_|_.__/ \__, |\__\___|
         __/ |                               __/ |        
        |___/                               |___/         
    
    Blog:       https://parzibyte.me/blog/
    Ayuda:      https://parzibyte.me/#contacto
    Contacto:   https://parzibyte.me/#contacto/
    
    Copyright (c) 2020 Parzibyte
    Licenciado bajo la licencia MIT
    
    El texto de arriba debe ser incluido en cualquier redistribucion
*/ ?>
<?php

$texto = "Programar en PHP es realmente sencillo, como contar del 1 al 10";
echo "Contando letras de: '$texto'\n";
$letras = "abcdefghijklmnopqrstuvwxyz";
$letras .= strtoupper($letras);
for ($i = 0; $i < strlen($letras); $i++) {
    $letra = $letras[$i];
    $contador = 0;
    for ($x = 0; $x < strlen($texto); $x++) {
        $actual = $texto[$x];
        if ($actual === $letra) {
            $contador++;
        }

    }
    if ($contador > 0) {
        echo "$letra=";
        echo $contador;
        echo "\n";
    }
}

Y al ejecutar se ve así:

Contar letras de cadena en PHP - Ejercicio resuelto

Como lo dije, fue de acuerdo al ejercicio solicitado; si quieres algo más rápido podrías ver este ejemplo en Java usando hashmap.

Te invito a leer más sobre PHP en mi blog.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto