Maison  >  Article  >  développement back-end  >  Comment regrouper des lignes dans un tableau 2D par une colonne et additionner une autre colonne en PHP ?

Comment regrouper des lignes dans un tableau 2D par une colonne et additionner une autre colonne en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 09:57:03383parcourir

How to Group Rows in a 2D Array by a Column and Sum Another Column in PHP?

Regrouper les lignes d'un tableau 2D par une colonne et additionner une autre colonne

Pour regrouper les lignes d'un tableau 2D en fonction d'une colonne spécifique et en additionner une autre colonne, vous pouvez utiliser l'approche suivante :

Supposons que nous ayons un tableau comme celui-ci :

<code class="php">[
    ['url_id' => 2191238, 'time_spent' => 41],
    ['url_id' => 2191606, 'time_spent' => 215],
    ['url_id' => 2191606, 'time_spent' => 25]
]</code>

Pour calculer la somme des valeurs time_spent pour chaque url_id unique, nous pouvons utiliser le PHP suivant code :

<code class="php">$ts_by_url = array();
foreach($array as $data) {
    if(!array_key_exists($data['url_id'], $ts_by_url))
        $ts_by_url[ $data['url_id'] ] = 0;
    $ts_by_url[ $data['url_id'] ] += $data['time_spent'];
}</code>

Dans ce code, nous parcourons le tableau et créons un tableau ($ts_by_url) qui est indexé par url_id. Pour chaque élément de données de la boucle, nous vérifions si son url_id existe dans $ts_by_url. Si ce n'est pas le cas, nous définissons sa valeur sur 0. Ensuite, nous incrémentons la valeur time_spent du time_spent dans l'élément de données actuel.

Une fois la boucle terminée, $ts_by_url contiendra les résultats souhaités :

2191238 => 41
2191606 => 240 // == 215 + 25

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn