Dans PHP, USORT () et Array_Diff_uassoc () sont deux fonctions de traitement de tableau couramment utilisées. USORT () est utilisé pour trier les tableaux, tandis que Array_Diff_uassoc () est utilisé pour comparer les valeurs clés de deux tableaux et renvoyer leurs différences. La combinaison de ces deux fonctions peut obtenir des opérations de tableau plus complexes.
Cet article utilisera un exemple pratique pour montrer comment trier les tableaux en utilisant usort () , puis utiliser array_diff_uassoc () pour la comparaison du tableau.
Tout d'abord, comprenons l'utilisation de base d' Usort () . USORT () est utilisé pour trier les tableaux en fonction des fonctions de comparaison définies par l'utilisateur. Supposons que nous ayons un tableau contenant des chaînes avec des nombres et que nous voulons trier par la taille des nombres.
<?php
// Définissez un tableau avec des nombres
$array = [
'apple' => '10',
'banana' => '2',
'cherry' => '5',
'date' => '1',
];
// Fonctions de comparaison personnalisées,Utilisé pour trier par la taille du nombre
function compare_numbers($a, $b) {
return $a - $b;
}
// utiliser usort() Trier les valeurs du tableau
usort($array, 'compare_numbers');
// Treat de triage imprimé
print_r($array);
?>
Sortir:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 10
)
Dans cet exemple, USORT () utilise une fonction Compare_Numbers () personnalisée pour trier les valeurs numériques du tableau.
array_diff_uassoc () est utilisé pour comparer les valeurs clés de deux tableaux, des éléments de retour qui existent dans le premier tableau mais n'existent pas dans le deuxième tableau. Contrairement à array_diff_assoc () , array_diff_uassoc () vous permet d'utiliser des fonctions de comparaison de valeurs clés personnalisées.
Supposons que nous ayons deux tableaux et que nous voulions comparer leurs principales différences de valeur. Nous pouvons utiliser array_diff_uassoc () pour implémenter cette fonction.
<?php
// Définir deux tableaux
$array1 = [
'apple' => 10,
'banana' => 2,
'cherry' => 5,
'date' => 1,
];
$array2 = [
'apple' => 10,
'banana' => 3,
'cherry' => 5,
'date' => 0,
];
// Fonctions de comparaison personnalisées,Utilisé pour comparer les valeurs clés
function compare_keys($a, $b) {
return strcmp($a, $b);
}
// utiliser array_diff_uassoc() Comparez les valeurs de clés du tableau
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
// Résultats d'impression
print_r($result);
?>
Sortir:
Array
(
[banana] => 2
[date] => 1
)
Dans cet exemple, array_diff_uassoc () compare les différences de valeur de clé dans Array1 et Array2 . Étant donné que la banane et la date ont des valeurs clés différentes dans les deux tableaux, elles sont retournées.
Nous pouvons combiner usort () et array_diff_uassoc () , utilisez d'abord usort () pour trier le tableau, puis le comparer avec array_diff_uassoc () pour obtenir la différence entre les tableaux triés.
Supposons d'abord trier le tableau, puis comparer les deux tableaux triés:
<?php
// Définir deux tableaux
$array1 = [
'apple' => 10,
'banana' => 2,
'cherry' => 5,
'date' => 1,
];
$array2 = [
'apple' => 10,
'banana' => 3,
'cherry' => 5,
'date' => 0,
];
// Fonctions de comparaison personnalisées,Utilisé pour trier par la taille du nombre
function compare_numbers($a, $b) {
return $a - $b;
}
// Tableau de combinaison1et tableau2trier les valeurs
usort($array1, 'compare_numbers');
usort($array2, 'compare_numbers');
// Fonctions de comparaison personnalisées,Utilisé pour comparer les valeurs clés
function compare_keys($a, $b) {
return strcmp($a, $b);
}
// utiliser array_diff_uassoc() Comparaison des tableaux triés
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
// Résultats d'impression
print_r($result);
?>
Sortir:
Array
(
[banana] => 2
[date] => 1
)
Dans cet exemple, utilisez d'abord USORT () pour trier les valeurs du tableau, puis utilisez array_diff_uassoc () pour comparer le tableau trié pour découvrir la différence dans les valeurs clés.
En combinant usort () et array_diff_uassoc () , nous pouvons trier les tableaux et comparer les différences. Cette approche est très utile pour gérer les tableaux qui doivent être triés et comparés aux valeurs clés. USORT () nous permet de trier les tableaux par des règles spécifiques, tandis que Array_Diff_uassoc () nous permet de découvrir facilement les différences de valeur clé entre deux tableaux.