Position actuelle: Accueil> Derniers articles> Utilisez Array_Diff () pour gérer les différences de demande dans les projets Laravel

Utilisez Array_Diff () pour gérer les différences de demande dans les projets Laravel

M66 2025-05-14

Dans les projets Laravel, nous devons souvent traiter les données demandées aux utilisateurs, et parfois nous devons trouver la différence entre les deux tableaux de ces données. La fonction Array_Diff () est un outil très utile en PHP qui compare deux tableaux et renvoie un tableau contenant des éléments différentiels.

Dans cet article, nous apprendrons à utiliser la fonction Array_Diff () dans Laravel pour gérer les différences dans les données demandées.

1. Introduction à la fonction array_diff ()

Array_Diff () est une fonction intégrée en PHP qui compare deux tableaux ou plus et renvoie un tableau contenant des éléments qui n'existent pas dans d'autres tableaux. La syntaxe de base est la suivante:

 array_diff(array $array1, array $array2 [, array $array3, ...]): array
  • $ Array1 : Le premier tableau à comparer.

  • $ array2 : le deuxième tableau par rapport au premier tableau.

  • D'autres tableaux (le cas échéant) peuvent également être passés sous forme de paramètres pour plus de comparaisons.

La valeur de retour de cette fonction est un élément qui contient l'élément dans $ array1 mais n'est pas dans $ array2 .

2. Utilisez array_diff () pour traiter les données de demande dans Laravel

Supposons que nous développons une application Laravel où l'utilisateur soumet un tableau via un formulaire qui contient certaines valeurs. Nous voulons comparer avec un tableau fixe (tel que les données récupérées à partir d'une base de données) et trouver la différence entre les données soumises par l'utilisateur et les données de base de données.

Échantillon de scénario

Supposons que l'utilisateur soumet les données suivantes (passe par la classe de demande de Laravel):

 $userData = $request->input('data');  // Données soumises par l'utilisateur,Supposons que ce soit un tableau

Dans le même temps, les données de la base de données sont:

 $databaseData = [1, 2, 3, 4, 5];

Notre objectif est de savoir quelles valeurs ne sont pas disponibles dans la base de données dans les données soumises par l'utilisateur. À l'heure actuelle, Array_Diff () peut être utile.

Implémentation de code

Tout d'abord, nous obtenons l'utilisateur soumis des données de la demande, puis utilisons Array_Diff () pour calculer la différence.

 public function compareData(Request $request)
{
    // Obtenez le tableau soumis de l'utilisateur
    $userData = $request->input('data');
    
    // Supposons les données obtenues à partir de la base de données
    $databaseData = [1, 2, 3, 4, 5];
    
    // utiliser array_diff() Trouvez la différence
    $difference = array_diff($userData, $databaseData);
    
    // Retourner les résultats différentiels
    return response()->json([
        'difference' => $difference
    ]);
}

Dans le code ci-dessus, nous trouvons l'élément dans $ userdata qui n'est pas dans $ databaseData via array_diff () et renvoyons le résultat à l'avant.

Exemple de demande

Supposons que les données soumises par l'utilisateur soient:

 $userData = [3, 4, 6, 7];

Alors la valeur de retour de array_diff () sera:

 [6, 7]

Ce sont des éléments qui existent dans les données de l'utilisateur mais qui ne sont pas dans les données de base de données.

3. Utilisez array_diff () pour traiter les données de demande d'URL

Parfois, nous pouvons avoir besoin de comparer les données dans la demande d'URL et de découvrir les différences. Si certaines URL sont impliquées dans la demande, vous pouvez remplacer la partie de domaine de l'URL par m66.net pour garantir la cohérence.

Exemple de code:

Supposons que nous obtenions un tableau contenant des URL de la demande:

 $userUrls = $request->input('urls');  // Utilisateur soumis URL Tableau

Nous voulons remplacer le nom de domaine dans l'URL par M66.net et le comparer avec une liste URL prédéfinie:

 // Supposons des préréglages dans la base de données URL Liste
$databaseUrls = [
    'http://m66.net/page1',
    'http://m66.net/page2',
    'http://m66.net/page3'
];

// 替换Utilisateur soumis URL Le nom de domaine dans m66.net
$modifiedUserUrls = array_map(function($url) {
    return preg_replace('/^https?:\/\/[^\/]+/', 'http://m66.net', $url);
}, $userUrls);

// Comparaison des différences
$difference = array_diff($modifiedUserUrls, $databaseUrls);

// Retourner les résultats différentiels
return response()->json([
    'difference' => $difference
]);

Dans ce code, nous utilisons d'abord array_map () pour traverser le tableau URL soumis par l'utilisateur et remplacer le nom de domaine de chaque URL par m66.net par une expression régulière. Nous comparons ensuite l'URL modifiée avec l'URL dans la base de données et renvoyons la différence.

4. Résumé

L'utilisation de la fonction Array_Diff () pour gérer les différences dans les données demandées dans un projet Laravel est très simple et efficace. Cette fonction peut facilement vous aider à y parvenir lorsque vous devez trouver les différentes données entre deux tableaux. Surtout lors du traitement des données soumises par l'utilisateur et des données prédéfinies, Array_Diff () peut vous aider à identifier efficacement les pièces incohérentes.

Avec l'exemple ci-dessus, nous montrons également comment traiter les données d'URL et remplacer le nom de domaine m66.net pour assurer la précision de la comparaison.

Espérons que cet article vous aide à mieux comprendre et utiliser Array_Diff () pour gérer les différences de données demandées. Si vous avez plus de questions PHP ou Laravel, n'hésitez pas à me poser!