Heim >Backend-Entwicklung >PHP-Problem >So ermitteln Sie, ob zwei Arrays in PHP konsistent sind

So ermitteln Sie, ob zwei Arrays in PHP konsistent sind

PHPz
PHPzOriginal
2023-04-24 14:49:511327Durchsuche

Bei der PHP-Programmierung kommt es sehr häufig vor, festzustellen, ob zwei Arrays konsistent sind. Insbesondere bei der Verarbeitung von Formularübermittlungsdaten ist es häufig erforderlich, die vom Benutzer übermittelten Daten zu überprüfen. In diesem Fall muss verglichen werden, ob die beiden Arrays gleich sind. Im Folgenden stellen wir verschiedene Methoden vor, um festzustellen, ob zwei Arrays konsistent sind.

Methode 1: Array-Vergleichsfunktion verwenden

PHP bietet mehrere Funktionen zum Vergleichen von Arrays, wie array_diff(), array_intersect() usw. Um festzustellen, ob zwei Arrays konsistent sind, können Sie die Funktion array_diff_assoc() verwenden. Die Funktion dieser Funktion besteht darin, den Unterschied zwischen zwei Arrays zu ermitteln. Die Besonderheit besteht jedoch darin, dass beim Vergleich, ob zwei Elemente gleich sind, nicht nur die Werte, sondern auch die Schlüsselnamen verglichen werden. Das spezifische Format ist wie folgt:

array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) : array

Unter diesen sind Array1 und Array2 die beiden zu vergleichenden Arrays. Wenn die beiden Arrays gleich sind, wird ein leeres Array zurückgegeben, andernfalls werden die Elemente in Array1 zurückgegeben, die sich von Array2 unterscheiden . Das Folgende ist ein Beispielcode:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
if(array_diff_assoc($array1, $array2)==NULL)
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

In diesem Code werden zuerst zwei Arrays $array1 und $array2 definiert, dann wird die Funktion array_diff_assoc() verwendet, um die beiden Arrays zu vergleichen, und schließlich wird beurteilt, ob die beiden Arrays übereinstimmen Das Gleiche basiert auf dem Rückgabeergebnis der Funktion. Wenn die beiden Arrays gleich sind, ist das Rückgabeergebnis NULL, andernfalls werden die unterschiedlichen Elemente der beiden Arrays zurückgegeben.

Methode 2: Schleifendurchquerung verwenden

Zusätzlich zur Verwendung der Array-Vergleichsfunktion können Sie zwei Arrays auch vergleichen, indem Sie sie durchlaufen. Die Idee besteht darin, die Schlüssel und Werte der beiden Arrays zu vergleichen. Wenn die Schlüsselnamen und Schlüsselwerte gleich sind, werden die beiden Arrays als gleich betrachtet. Das Folgende ist ein Beispielcode:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
$flag = true; //假设两个数组相同
foreach($array1 as $key=>$value)
{
    if(!isset($array2[$key]) || $array2[$key]!=$value)
    {
        $flag = false; //标识为不相同
        break;
    }
}
if($flag)
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

In diesem Code werden zwei Arrays $array1 und $array2 definiert. Anschließend werden alle Elemente des Arrays $array1 durchlaufen, um festzustellen, ob ihre Schlüssel und Werte mit denen übereinstimmen das $array2-Array. Zwei Arrays gelten als unterschiedlich, wenn einer der Schlüssel oder Werte unterschiedlich ist. Abschließend wird anhand des Flags $flag beurteilt, ob die beiden Arrays gleich sind.

Methode 3: Serialisierungsvergleich

Eine weitere einfache und effektive Möglichkeit, zwei Arrays zu vergleichen, besteht darin, sie zunächst durch Serialisierung in Zeichenfolgen umzuwandeln und sie dann zu vergleichen. Der spezifische Code lautet wie folgt:

$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male');
$array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male');
 
if(serialize($array1)==serialize($array2))
{
    echo "两个数组相同";
}
else
{
    echo "两个数组不相同";
}

Nachdem Sie die beiden Arrays mit der Funktion serialize() in Zeichenfolgen konvertiert haben, verwenden Sie zum Vergleich den Operator „==". Wenn die beiden Zeichenfolgen gleich sind, bedeutet dies, dass die beiden Arrays identisch sind das gleiche. Der Vorteil dieser Methode besteht darin, dass sie einfach und bequem ist. Aufgrund der Notwendigkeit einer Serialisierung und eines Zeichenfolgenvergleichs kann sie jedoch die Ausführungseffizienz geringfügig beeinträchtigen.

Zusammenfassend lässt sich sagen, dass es viele Methoden zum Vergleichen zweier Arrays gibt und Sie je nach tatsächlicher Situation die am besten geeignete Methode auswählen können. Unabhängig davon, welche Methode verwendet wird, sollten Sie vor dem Vergleich sicherstellen, dass die Schlüsselnamen und Schlüsselwerte der beiden Arrays konsistent sind, da sonst die Vergleichsergebnisse abweichen.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob zwei Arrays in PHP konsistent sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn