es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cantidad de claves en los arrays asociativos.

Tengo este array:

$config = [
    'gallery_name' => 'Mi galería',
    'unsplash_categories' => ['Nature' => '<img src="https://source.unsplash.com/300x200/?nature" alt="Nature">',
                              'Water' => '<img src="https://source.unsplash.com/300x200/?water" alt="Water">',
                              'Food' => '<img src="https://source.unsplash.com/300x200/?food" alt="Food">', 
                              'Night' => '<img src="https://source.unsplash.com/300x200/?night" alt="Night">'],
    'local_images' => ['1.jpg' => '<img src="./images/1.jpg" alt="Clem Onojeghuo">', 'link1' => '<a href="https://unsplash.com/@clemono">Clem Onojeghuo</a>',
                       '2.jpg' => '<img src="./images/2.jpg" alt="Jordan Whitt">', 'link2' => '<a href="https://unsplash.com/@jwwhitt">Jordan Whitt</a>',
                       '3.jpg' => '<img src="./images/3.jpg" alt="Michael Kucharski">', 'link3' => '<a href="https://unsplash.com/@intacts">Michael Kucharski</a>',
                       '4.jpg' => '<img src="./images/4.jpg" alt="Paul Gilmore">', 'link4' => '<a href="https://unsplash.com/@pueblovista">Paul Gilmore</a>']
];

y quiero contar SOLAMENTE las primeras claves en el array ‘local_images’. Es decir: 1.jpg, 2.jpg, 3.jpg, 4.jpg, NO link1, link2, link3, link4.

Estoy usando:

<h1><?php echo(count($config['local_images'])) . " Imágenes Grandes"; ?></h1>

pero está mostrando 8 ya que sé que hay 8 claves en total para este array, sin embargo, solo quiero apuntar a las que terminan en ‘.jpg’. ¿Hay alguna forma de lograr esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes lograr esto utilizando la función array_filter() para filtrar las entradas del arreglo local_images que tienen la extensión .jpg en su clave. Aquí tienes un ejemplo de código:

    $count = count(array_filter(array_keys($config['local_images']), function($key) {
        return substr($key, -4) === '.jpg';
    }));
    
    echo "<h1>{$count} Imágenes Grandes</h1>";
    

    En el código anterior, utilizamos la función array_keys() para obtener un arreglo con las claves del arreglo local_images. Luego, pasamos este arreglo a la función array_filter() junto con una función anónima que retorna true si la clave termina con .jpg. Esto filtra las entradas que no tienen .jpg en su clave. Finalmente, utilizamos la función count() para contar las entradas restantes en el arreglo filtrado.

Comments are closed.