php

PHP: contar letras de cadena e imprimir resultados

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/blog/contrataciones-ayuda/
    Contacto:   https://parzibyte.me/blog/contacto/
    
    Copyright (c) 2020 Luis Cabrera Benito
    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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

1 mes hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

1 mes hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

1 mes hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

2 meses hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

3 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

3 meses hace