Chose Language:
Author: Admin/Publisher |finished | checked

PHP array_chunk

La función de PHP array_chunk se encarga de dividir un array proporcionado en fragmentos o partes, esta dará un nuevo array el cual será el que está fraccionado como retorno.

Description / Descripción
array_chunk(array $array, int $size, bool $preserve_keys = false): array

Parámetros

$array – array que proporcionaremos para fragmentar.

$size – El tamaño que tendrá cada fragmento. Tenga en

$preserve_keys -este parámetro es opcional, en caso de querer preservar las keys del array proporcionado se puede pasar true en este parámetro.

Retorno

Un array con subarrays que serán sus fragmentos.

La función array_chunk puede ser muy util para usted, aunque no se note tanto. Supongamos que tenemos una consulta a base de datos y queremos hacer una paginacion de lo consultado. No tendria mucho sentido entrar a la base de datos a cada rato para hacer una consulta cada vez que toquemos un numero de la paginacion si el sitio resulta ser muy concurrido y posee consultas por todos lados lo mejor seria obtener una gran consulta de 100 datos y aplicarle array_chunk de esa forma no tendremos tantas consultas. El hacer miles de pequeñas consultas puede probocar un Overhead de conexión.

Ejemplos de PHP array_chunk

Ejemplo simple de la función array_chunk

Este es un ejemplo con marcas de autos
<?php
//blastcoding.com example1 php array_chunk
$marcasDeAutos = array(
    "Toyota",
    "Ford",
    "Honda",
    "Chevrolet",
    "Volkswagen",
    "BMW",
    "Mercedes-Benz",
    "Audi",
    "Nissan",
    "Hyundai",
    "Kia",
    "Subaru",
    "Mazda",
    "Lexus",
    "Jeep",
);

print_r(array_chunk($marcasDeAutos,5));
Array
(
    [0] => Array
        (
            [0] => Toyota
            [1] => Ford
            [2] => Honda
            [3] => Chevrolet
            [4] => Volkswagen
        )

    [1] => Array
        (
            [0] => BMW
            [1] => Mercedes-Benz
            [2] => Audi
            [3] => Nissan
            [4] => Hyundai
        )

    [2] => Array
        (
            [0] => Kia
            [1] => Subaru
            [2] => Mazda
            [3] => Lexus
            [4] => Jeep
        )

)

Aplicando array_chunk para una paginación

Este caso es el ejemplo que comentamos
//blastcoding.com example2 php array_chunk
$usuarios = array(
    array(
        'nombre' => 'Juan Pérez',
        'edad' => 25,
        'email' => 'juan@example.com',
    ),
    array(
        'nombre' => 'María Rodríguez',
        'edad' => 30,
        'email' => 'maria@example.com',
    ),
    array(
        'nombre' => 'Carlos Sánchez',
        'edad' => 22,
        'email' => 'carlos@example.com',
    ),
    array(
        'nombre' => 'Luis González',
        'edad' => 28,
        'email' => 'luis@example.com',
    ),
    array(
        'nombre' => 'Ana Martínez',
        'edad' => 35,
        'email' => 'ana@example.com',
    ),
    array(
        'nombre' => 'Laura López',
        'edad' => 29,
        'email' => 'laura@example.com',
    ),
    array(
        'nombre' => 'Pedro Torres',
        'edad' => 27,
        'email' => 'pedro@example.com',
    ),
    array(
        'nombre' => 'Elena Ramírez',
        'edad' => 31,
        'email' => 'elena@example.com',
    ),
    array(
        'nombre' => 'Sofía García',
        'edad' => 26,
        'email' => 'sofia@example.com',
    ),
    array(
        'nombre' => 'Mario Díaz',
        'edad' => 24,
        'email' => 'mario@example.com',
    ),
    array(
        'nombre' => 'Javier Fernández',
        'edad' => 33,
        'email' => 'javier@example.com',
    ),
    array(
        'nombre' => 'Isabel Ortega',
        'edad' => 23,
        'email' => 'isabel@example.com',
    ),
    array(
        'nombre' => 'Rosa Jiménez',
        'edad' => 32,
        'email' => 'rosa@example.com',
    ),
    array(
        'nombre' => 'Diego Silva',
        'edad' => 28,
        'email' => 'diego@example.com',
    ),
    array(
        'nombre' => 'Carolina Castro',
        'edad' => 34,
        'email' => 'carolina@example.com',
    ),
);

print_r(array_chunk($usuarios,5));
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [nombre] => Juan Pérez
                    [edad] => 25
                    [email] => juan@example.com
                )

            [1] => Array
                (
                    [nombre] => María Rodríguez
                    [edad] => 30
                    [email] => maria@example.com
                )

            [2] => Array
                (
                    [nombre] => Carlos Sánchez
                    [edad] => 22
                    [email] => carlos@example.com
                )

            [3] => Array
                (
                    [nombre] => Luis González
                    [edad] => 28
                    [email] => luis@example.com
                )

            [4] => Array
                (
                    [nombre] => Ana Martínez
                    [edad] => 35
                    [email] => ana@example.com
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [nombre] => Laura López
                    [edad] => 29
                    [email] => laura@example.com
                )

            [1] => Array
                (
                    [nombre] => Pedro Torres
                    [edad] => 27
                    [email] => pedro@example.com
                )

            [2] => Array
                (
                    [nombre] => Elena Ramírez
                    [edad] => 31
                    [email] => elena@example.com
                )

            [3] => Array
                (
                    [nombre] => Sofía García
                    [edad] => 26
                    [email] => sofia@example.com
                )

            [4] => Array
                (
                    [nombre] => Mario Díaz
                    [edad] => 24
                    [email] => mario@example.com
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [nombre] => Javier Fernández
                    [edad] => 33
                    [email] => javier@example.com
                )

            [1] => Array
                (
                    [nombre] => Isabel Ortega
                    [edad] => 23
                    [email] => isabel@example.com
                )

            [2] => Array
                (
                    [nombre] => Rosa Jiménez
                    [edad] => 32
                    [email] => rosa@example.com
                )

            [3] => Array
                (
                    [nombre] => Diego Silva
                    [edad] => 28
                    [email] => diego@example.com
                )

            [4] => Array
                (
                    [nombre] => Carolina Castro
                    [edad] => 34
                    [email] => carolina@example.com
                )

        )

)

Referencia:https://www.php.net/manual/en/function.array-chunk.php

Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category