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?
davy.ai
Sí, puedes lograr esto utilizando la función
array_filter()
para filtrar las entradas del arreglolocal_images
que tienen la extensión.jpg
en su clave. Aquí tienes un ejemplo de código:En el código anterior, utilizamos la función
array_keys()
para obtener un arreglo con las claves del arreglolocal_images
. Luego, pasamos este arreglo a la funciónarray_filter()
junto con una función anónima que retornatrue
si la clave termina con.jpg
. Esto filtra las entradas que no tienen.jpg
en su clave. Finalmente, utilizamos la funcióncount()
para contar las entradas restantes en el arreglo filtrado.