In Laravel -Projekten müssen wir häufig angeforderte Daten von Benutzern verarbeiten, und manchmal müssen wir den Unterschied zwischen den beiden Arrays dieser Daten ermitteln. Die Funktion array_diff () ist ein sehr nützliches Werkzeug in PHP, das zwei Arrays vergleicht und ein Array mit Differentialelementen zurückgibt.
In diesem Artikel lernen wir, wie Sie die Funktion array_diff () in Laravel verwenden, um Unterschiede in angeforderten Daten zu behandeln.
Array_Diff () ist eine integrierte Funktion in PHP, die zwei oder mehr Arrays vergleicht und ein Array zurückgibt, das Elemente enthält, die in anderen Arrays nicht vorhanden sind. Die grundlegende Syntax ist wie folgt:
array_diff(array $array1, array $array2 [, array $array3, ...]): array
$ array1 : Das erste Array, das verglichen wird.
$ array2 : Das zweite Array im Vergleich zum ersten Array.
Andere Arrays (falls vorhanden) können ebenfalls als Parameter für mehr Vergleiche übergeben werden.
Der Rückgabewert dieser Funktion ist ein Element, das das Element in $ array1 enthält, sich jedoch nicht in $ array2 befindet.
Angenommen, wir entwickeln eine Laravel -Anwendung, bei der der Benutzer ein Array durch ein Formular einreicht, das einige Werte enthält. Wir möchten mit einem festen Array vergleichen (z. B. Daten, die aus einer Datenbank abgerufen wurden) und die Differenz zwischen benutzergepeitschten Daten und Datenbankdaten herausfinden.
Nehmen wir an, der Benutzer reicht die folgenden Daten ein (die Anforderungsklasse von Laravel erhält):
$userData = $request->input('data'); // Benutzernde Daten,Angenommen, es ist ein Array
Gleichzeitig lautet die Daten in der Datenbank:
$databaseData = [1, 2, 3, 4, 5];
Unser Ziel ist es, herauszufinden, welche Werte in der Datenbank in den vom Benutzer übermittelten Daten nicht verfügbar sind. Zu diesem Zeitpunkt kann Array_Diff () nützlich sein.
Zuerst erhalten wir den Benutzer über die Anforderung übermittelt und verwenden dann Array_Diff (), um die Differenz zu berechnen.
public function compareData(Request $request)
{
// Lassen Sie den Benutzer eingereichtes Array erhalten
$userData = $request->input('data');
// Nehmen Sie die aus der Datenbank erhaltenen Daten an
$databaseData = [1, 2, 3, 4, 5];
// verwenden array_diff() Finden Sie den Unterschied
$difference = array_diff($userData, $databaseData);
// Differentialergebnisse zurückgeben
return response()->json([
'difference' => $difference
]);
}
Im obigen Code finden wir das Element in $ userData , das nicht in $ databasedata über Array_Diff () ist, und geben das Ergebnis an das Frontend zurück.
Angenommen, der vom Benutzer eingereichte Daten lautet:
$userData = [3, 4, 6, 7];
Dann wird der Rückgabewert von Array_Diff () sein:
[6, 7]
Dies sind Elemente, die in Benutzerdaten vorhanden sind, aber nicht in Datenbankdaten enthalten sind.
Manchmal müssen wir die Daten in der URL -Anfrage vergleichen und die Unterschiede herausfinden. Wenn einige URLs an der Anfrage beteiligt sind, können Sie den Domänenteil der URL durch M66.NET ersetzen, um eine Konsistenz zu gewährleisten.
Angenommen, wir erhalten ein Array mit URLs aus der Anfrage:
$userUrls = $request->input('urls'); // Benutzer eingereicht URL Array
Wir möchten den Domänennamen in der URL durch m66.net ersetzen und ihn mit einer voreingestellten URL -Liste vergleichen:
// Nehmen Sie Voreinstellungen in der Datenbank an URL Liste
$databaseUrls = [
'http://m66.net/page1',
'http://m66.net/page2',
'http://m66.net/page3'
];
// 替换Benutzer eingereicht URL Der Domain -Name in m66.net
$modifiedUserUrls = array_map(function($url) {
return preg_replace('/^https?:\/\/[^\/]+/', 'http://m66.net', $url);
}, $userUrls);
// Vergleich der Unterschiede
$difference = array_diff($modifiedUserUrls, $databaseUrls);
// Differentialergebnisse zurückgeben
return response()->json([
'difference' => $difference
]);
In diesem Code verwenden wir zunächst Array_Map () , um das vom Benutzer eingereichte URL -Array zu durchqueren und den Domänennamen jeder URL durch m66.net durch einen regulären Ausdruck zu ersetzen. Anschließend vergleichen wir die modifizierte URL mit der URL in der Datenbank und geben die Differenz zurück.
Die Verwendung der Funktion array_diff () , um Unterschiede in angeforderten Daten in einem Laravel -Projekt zu verwalten, ist sehr einfach und effizient. Diese Funktion kann Ihnen leicht helfen, dies zu erreichen, wenn Sie die verschiedenen Daten zwischen zwei Arrays herausfinden müssen. Insbesondere bei der Verarbeitung von Daten und Voreinstellungsdaten können Sie Array_Diff () helfen, inkonsistente Teile effizient zu identifizieren.
Mit dem obigen Beispiel zeigen wir auch, wie URL -Daten verarbeitet und der Domänenname M66.NET ersetzt werden, um die Genauigkeit des Vergleichs sicherzustellen.
Hoffentlich hilft Ihnen dieser Artikel , Array_Diff () besser zu verstehen und zu verwenden, um die Unterschiede in angeforderten Daten zu verwalten. Wenn Sie mehr Php- oder Laravel -Fragen haben, können Sie mich gerne stellen!