Comunidad de diseño web y desarrollo en internet online

Contar el numero de mayúsculas de cada una de las cadenas de un array

Citar            
MensajeEscrito el 02 Mar 2019 07:17 am
Hola a tod@s
Necesito saber cuantas mayúsculas contiene cada uno de los string de un array, pero no encuentro la manera de hacerlo
Este es el ejemplo del array

Código PHP :

$listaTextos = array(
        'EN UN LUGAR DE LA MANCHA',
        'En Un Lugar de la Mancha',
        'en un lugar de la mancha',
};
$patron = '/([A-Z]{1})/';
foreach ($listaTextos as $texto) {
        $esCoincidente = preg_match($patron, $texto);
 
        if ($esCoincidente) {
            echo  $texto;
            
        }       
}

Asi me muestra las cadenas que contienen alguna mayúscula, pero como tengo que hacer para que me muestre el número de mayúsculas que contiene cada uno de los textos, sería así.
19
4
0

Por pedromir

29 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 25 Abr 2019 06:48 pm
Yo intentaría algo más "rústico"... ¿por qué no usar una función que determine si un caracter es mayúscula y luego recorrer las cadenas llamándola?

Algo como:

Código PHP :

<?php

$listaTextos = [
        'EN UN LUGAR DE LA MANCHA',
        'En Un Lugar de la Mancha',
        'en un lugar de la mancha',
];

foreach ( $listaTextos as $texto ) {
        echo $texto.' tiene '.countUpper( $texto ).' mayusculas'.PHP_EOL;
}

function countUpper( string $str ) : int
{
        $count = 0;
        for ( $i = 0; $i < strlen( $str ); $i++ ) {
                $count += ctype_upper($str[$i]);
        }

        return $count;
}

Por mchojrin

37 de clabLevel



Genero:Masculino  

Ayudo desarrolladores PHP a acelerar su llegada a Sr.

chrome
Citar            
MensajeEscrito el 08 May 2019 04:44 pm
No me funciona tu propuesta, pero ya lo he resuelto, he utilizado count_chars con una expresion regular y funciona perfectamente y lo de contar las mayúsculas, es lo que se me ha ocurrido, es porque los string tienen que tener una longitud máxima y cuando superan esa longitud los corto y les añado los típicos ..., pero a la hora de hacer el corte no puedo poner un número fijo de caracteres, porque al visualizar el resultado me va a quedar mas corto o más largo el texto según el número de mayúsculas que tenga este, pues son caracteres que ocupan más espacio y aquí viene mi pregunta hay otra forma de hacer el corte y que estéticamente quede bien, sin necesidad de contar las mayúsculas.

Por pedromir

29 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 May 2019 03:06 pm
¿Podrías comentar qué fue lo que no te funcionó de mi propuesta? Yo lo había probado y me función bien...

Entiendo que tu problema es de acomodar la gráfica del texto en la pantalla, ¿correcto? Imagino que esto deberías hacerlo vía js más que vía php... ¿qué pasa si el usuario cambia el tamaño de su pantalla? (Por ejemplo maximizando la ventana).

Me parece que lo que estás buscando tiene más que ver con el diseño responsivo que otra cosa.

Por mchojrin

37 de clabLevel



Genero:Masculino  

Ayudo desarrolladores PHP a acelerar su llegada a Sr.

chrome
Citar            
MensajeEscrito el 11 May 2019 07:01 am
Tienes razón, intentaré hacerlo con js, en cuanto a tu función, el problema es que al integrarla dentro de otra función donde recojo las variables del resultado de una búsqueda, para darle formato a dicho resultado, cambiar de pagina si los resultados superan el limite por página, etc., es mi código el que deja de funcionar, con tu función deja de mostrarme dichos resultados, me aparece la página en blanco, no he investigado el porqué, porque lo he resuelto de la otra manera, utilizando count_chars

Por pedromir

29 de clabLevel



 

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.