Comment regrouper des tableaux php selon la même valeur

PHPz
Libérer: 2023-04-14 19:01:14
original
170 Les gens l'ont consulté

Le tableau PHP est un type de données très couramment utilisé, qui est souvent utilisé dans notre processus de développement. Dans le développement réel, nous rencontrons souvent des situations où nous devons regrouper en fonction des mêmes valeurs dans le tableau, alors comment implémenter cela ?

En PHP, nous pouvons utiliser array_column(), array_multisort() et d'autres fonctions pour trier et regrouper les tableaux. Jetons un coup d'œil à quelques méthodes de mise en œuvre spécifiques.

  1. Utilisez la fonction array_column() pour obtenir le nom de clé de la même valeur

Tout d'abord, nous pouvons utiliser la fonction array_column(), qui peut extraire la valeur correspondant à une clé d'un tableau et renvoyer un tableau à en même temps. Nous pouvons effectuer des opérations de regroupement basées sur le tableau renvoyé par la fonction array_column(), qui est une collection des mêmes valeurs.

La méthode d'implémentation spécifique est la suivante :

<code class="php"><?php
// 定义一个数组
$arr = array(
    array('id'=>1, 'name'=>'张三', 'age'=>18),
    array('id'=>2, 'name'=>'李四', 'age'=>20),
    array('id'=>3, 'name'=>'张三', 'age'=>22),
    array('id'=>4, 'name'=>'王五', 'age'=>25),
    array('id'=>5, 'name'=>'赵六', 'age'=>20),
);

// 获取相同值的键名
$key_arr = array_column($arr, 'name');

// 分组操作
$res = array();
foreach($key_arr as $k=>$v) {
    $res[$v][] = $arr[$k];
}
print_r($res);
?></code>
Copier après la connexion

Dans le code ci-dessus, nous définissons un tableau qui contient plusieurs éléments de données. Ensuite, nous utilisons la fonction array_column() pour récupérer les valeurs correspondant à toutes les clés 'nom' dans les données, c'est-à-dire ['Zhang San', 'Li Si', 'Zhang San', 'Wang Wu' , 'Zhao Liu'].

Ensuite, nous utilisons une boucle foreach pour parcourir le tableau ci-dessus, regrouper les données avec la même valeur et les stocker dans le tableau $res. Enfin, le tableau $res est le résultat de regroupement dont nous avons besoin.

  1. Utilisez la fonction array_multisort() pour trier des tableaux multidimensionnels

Une autre méthode d'implémentation consiste à utiliser la fonction array_multisort() pour trier des tableaux multidimensionnels, organiser les données avec la même valeur ensemble, puis effectuer des opérations de regroupement.

La méthode d'implémentation spécifique est la suivante :

<code class="php"><?php
// 定义一个数组
$arr = array(
    array('id'=>1, 'name'=>'张三', 'age'=>18),
    array('id'=>2, 'name'=>'李四', 'age'=>20),
    array('id'=>3, 'name'=>'张三', 'age'=>22),
    array('id'=>4, 'name'=>'王五', 'age'=>25),
    array('id'=>5, 'name'=>'赵六', 'age'=>20),
);

// 对数组进行排序
$name_arr = array_column($arr, 'name');
$age_arr = array_column($arr, 'age');

array_multisort($name_arr, SORT_ASC, SORT_STRING, $age_arr, SORT_ASC, SORT_NUMERIC, $arr);

// 分组操作
$res = array();
foreach($arr as $k=>$v) {
    $res[$v['name']][] = $v;
}
print_r($res);
?></code>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction array_column() pour obtenir les valeurs correspondant aux clés 'name' et 'age', puis utilisons la array_multisort() fonction pour trier le tableau. La fonction array_multisort() peut recevoir plusieurs paramètres de tableau, les trier par ordre croissant ou décroissant selon la valeur du premier tableau, puis trier les autres tableaux en conséquence selon l'ordre du premier tableau. Dans cet exemple, nous définissons $name_arr pour trier par ordre croissant et $age_arr pour trier par ordre croissant.

Enfin, nous utilisons une boucle foreach pour regrouper les données de même valeur et stocker les résultats dans le tableau $res. Enfin, le tableau $res est le résultat de regroupement dont nous avons besoin.

Résumé

Les deux méthodes ci-dessus peuvent réaliser l'opération de regroupement de tableaux PHP en fonction de la même valeur. La méthode à choisir pour une mise en œuvre spécifique dépend de vos propres besoins, de la structure des données et d'autres facteurs. Quelle que soit la méthode utilisée, nous pouvons obtenir une classification et des statistiques efficaces des tableaux, améliorant ainsi rapidement l'efficacité et la fiabilité du traitement des données.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal