Position actuelle: Accueil> Derniers articles> Comment pouvons-nous conserver l'index de tableau d'origine lors de la division d'un tableau à l'aide de Array_Chunk?

Comment pouvons-nous conserver l'index de tableau d'origine lors de la division d'un tableau à l'aide de Array_Chunk?

M66 2025-04-26

Dans PHP, Array_Chunk () est une fonction très courante qui est utilisée pour diviser un grand tableau en plusieurs petits tableaux et le renvoyer. Par défaut, Array_Chunk () réinitialise l'index de chaque petit tableau, qui compte les index à partir de 0. Si vous souhaitez conserver l'index d'origine lorsque vous divisez le tableau, vous pouvez utiliser un paramètre supplémentaire pour le faire.

Utilisation de base

Tout d'abord, jetons un coup d'œil à l'utilisation de base de array_chunk () . Supposons que nous ayons un tableau contenant plusieurs éléments et utilisez Array_Chunk () pour diviser ce tableau:

 <?php
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$chunkedArray = array_chunk($originalArray, 3);

print_r($chunkedArray);
?>

Après l'exécution, le résultat que nous obtenons est:

 Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )
)

Comme vous pouvez le voir, l'index de chaque petit tableau est compté à partir de 0 et l'index du tableau d'origine est réinitialisé.

Gardez l'index de tableau d'origine

Pour conserver l'index de tableau d'origine, nous devons simplement définir le troisième paramètre de Array_Chunk () sur true . Ce paramètre garantit que le tableau divisé conserve toujours le nom de clé d'origine.

 <?php
$originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$chunkedArray = array_chunk($originalArray, 3, true);

print_r($chunkedArray);
?>

Après l'exécution, le résultat que nous obtenons est:

 Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [3] => Array
        (
            [3] => 4
            [4] => 5
            [5] => 6
        )

    [6] => Array
        (
            [6] => 7
            [7] => 8
            [8] => 9
        )
)

Vous pouvez maintenant voir que l'index dans chaque petit tableau maintient l'index du tableau d'origine.

Pourquoi garder l'index d'origine?

Garder l'index d'origine peut être très utile dans certains cas, surtout si vous devez effectuer d'autres opérations en fonction de l'index. Par exemple, si vous souhaitez trouver l'emplacement d'origine d'un élément dans un tableau divisé ou une logique liée à un processus, le maintien de l'index rendra votre code plus flexible.

Exemples de scénarios d'application

Supposons que nous ayons un tableau d'utilisateurs, chaque utilisateur a un ID unique, et si nous divisons ce tableau et maintenons l'index, nous pouvons plus facilement suivre l'emplacement d'origine de chaque utilisateur. Par exemple:

 <?php
$users = [
    101 => 'Alice',
    102 => 'Bob',
    103 => 'Charlie',
    104 => 'David',
    105 => 'Eve',
    106 => 'Frank'
];

$chunkedUsers = array_chunk($users, 2, true);

print_r($chunkedUsers);
?>

Résultat de sortie:

 Array
(
    [101] => Array
        (
            [101] => Alice
            [102] => Bob
        )

    [103] => Array
        (
            [103] => Charlie
            [104] => David
        )

    [105] => Array
        (
            [105] => Eve
            [106] => Frank
        )
)

En conservant l'index, nous pouvons traiter chaque petit tableau directement en fonction de l'ID utilisateur d'origine.

Résumer

Lorsque vous divisez un tableau à l'aide de array_chunk () , si vous souhaitez conserver l'index de tableau d'origine, définissez simplement le troisième paramètre de la fonction sur true . Cela garantit que le tableau fendu conserve sa valeur de clé d'origine au lieu de recommencer à 0. Cette fonctionnalité est très utile lorsque vous traitez avec des tableaux qui doivent préserver les informations d'index.