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.
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é.
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.
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.
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.
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.