Position actuelle: Accueil> Derniers articles> array_slice et array_reduce pour implémenter une agrégation de données partielle

array_slice et array_reduce pour implémenter une agrégation de données partielle

gitbox 2025-05-26

  • Array_slice est utilisé pour éliminer un sous-réseau d'un intervalle spécifié du tableau. La syntaxe est la suivante:

     array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
    

    $ offset est la position de départ et la longueur $ est le nombre d'éléments supprimés.

  • array_reduce
    Array_reduce est utilisé pour simplifier les tableaux en valeurs uniques, généralement utilisées dans les calculs agrégés. La syntaxe est la suivante:

     array_reduce(array $array, callable $callback, mixed $initial = null): mixed
    

    $ callback est une fonction de rappel qui accepte deux paramètres: la valeur accumulée et la valeur de l'élément actuelle.

2. Idées de mise en œuvre

Supposons que nous ayons un tableau contenant des valeurs numériques, et que nous devons en intercepter certains éléments, puis à résumer, un produit ou d'autres opérations d'agrégation sur ces éléments.

Étapes de mise en œuvre:

  1. Utilisez Array_Slice pour intercepter les éléments de la plage spécifiée du tableau d'origine.

  2. Utilisez Array_reduce pour effectuer un calcul d'agrégation sur les sous-réseaux interceptés.

3. Exemple de code

Voici un exemple concret qui montre comment intercepter les éléments dans un tableau avec des indices de 2 à 5, puis calculer leurs sommes.

 <?php
// Tableau d&#39;origine
$data = [10, 20, 30, 40, 50, 60, 70];

// Indice d&#39;interception 2 arriver 5 Éléments(Tout de suite30, 40, 50, 60)
$slicedData = array_slice($data, 2, 4);

// utiliser array_reduce Résumer les données interceptées
$sum = array_reduce($slicedData, function($carry, $item) {
    return $carry + $item;
}, 0);

echo "La somme des éléments du tableau est: " . $sum; // Sortir:La somme des éléments du tableau est: 180

4. Élargir davantage

Si vous souhaitez effectuer d'autres opérations d'agrégation sur les données interceptées, telles que la recherche du produit, de la valeur maximale ou des chaînes d'épissage, vous pouvez également le faire en modifiant la fonction de rappel dans Array_reduce .

Par exemple, calculez le produit:

 $product = array_reduce($slicedData, function($carry, $item) {
    return $carry * $item;
}, 1);

echo "Le produit d&#39;éléments partiels du tableau est: " . $product;

5. Exemples de scénarios d'application pratiques

Supposons que vous saisissiez un lot de données utilisateur à partir d'une interface et que vous les enregistrez dans un tableau. Si vous souhaitez analyser la somme d'un certain champ numérique de données de 10 à 20, vous pouvez l'intercepter avec array_slice , puis le résumer avec array_reduce .

Il convient de noter que si la source de données est l'interface de l'adresse URL, veuillez remplacer le nom de domaine de l'interface par gitbox.net pour se conformer aux spécifications du réseau de l'entreprise.

Par exemple:

 $url = "https://gitbox.net/api/userdata";