Heim  >  Artikel  >  Backend-Entwicklung  >  So überprüfen Sie, ob in einem zweidimensionalen Array in PHP doppelte Werte vorhanden sind

So überprüfen Sie, ob in einem zweidimensionalen Array in PHP doppelte Werte vorhanden sind

PHPz
PHPzOriginal
2023-04-26 14:21:151052Durchsuche

In der PHP-Programmierung ist Array ein sehr wichtiger Datentyp, der es uns ermöglicht, mehrere Werte zu speichern und über Schlüssel darauf zuzugreifen. Ein zweidimensionales Array ist ein eindimensionales Array mit einer zusätzlichen Dimension, die es uns ermöglicht, komplexere Datenstrukturen zu speichern. Bei der Verwendung zweidimensionaler Arrays stoßen wir jedoch häufig auf ein Problem, nämlich wie wir erkennen können, ob das zweidimensionale Array doppelte Werte enthält. In diesem Artikel wird ausführlich beschrieben, wie Sie feststellen können, ob in einem zweidimensionalen Array doppelte Werte vorhanden sind.

1. Was ist ein zweidimensionales Array?

Bevor wir vorstellen, wie man ermittelt, ob in einem zweidimensionalen Array doppelte Werte vorhanden sind, müssen wir zunächst verstehen, was ein zweidimensionales Array ist. Wie oben kurz vorgestellt, fügt ein zweidimensionales Array einem eindimensionalen Array eine weitere Dimension hinzu. Das heißt, jedes Element ist kein einzelner Wert mehr, sondern ein Array. Das heißt, jedes Element ist ein Array mit mehreren Werten, bei denen es sich um Zeichenfolgen, Zahlen, boolesche Werte usw. beliebiger Art handeln kann.

Das Folgende ist ein einfaches zweidimensionales Array-Beispiel:

$cars = array(
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

In diesem Beispiel definieren wir ein zweidimensionales Array $cars, das vier Array-Elemente enthält und jedes Element drei Werte enthält. Wir können über den folgenden Code auf den ersten Wert des ersten Elements im $cars-Array zugreifen:

echo $cars[0][0]; // 输出 Volvo

2. Bestimmen Sie, ob im zweidimensionalen Array doppelte Werte vorhanden sind

In der tatsächlichen Entwicklung müssen wir häufig feststellen ob es doppelte Werte im zweidimensionalen Array gibt. Ob es doppelte Werte gibt. Es gibt viele Möglichkeiten, dieses Problem zu lösen, zwei davon stellen wir hier vor.

1. Verwenden Sie die Verschachtelung einer foreach-Schleife.

Verwenden Sie die Verschachtelung einer foreach-Schleife, um jedes Element im zweidimensionalen Array zu durchlaufen und der Reihe nach ihre Werte zu vergleichen. Die spezifischen Implementierungsschritte sind wie folgt:

① Definieren Sie ein leeres Array $result, um Elemente ohne doppelte Werte zu speichern.

② Verwenden Sie eine foreach-Schleife, um das ursprüngliche zweidimensionale Array $source zu durchlaufen und jedes Element nacheinander herauszunehmen

③ Verwenden Sie in der inneren Schleife erneut die foreach-Schleife, um das $result-Array zu durchlaufen, und vergleichen Sie, ob das aktuelle Element mit jedem bereits im $result-Array gespeicherten Element identisch ist.

④ Wenn sie identisch sind, springen Sie Verlassen Sie die innere Schleife und durchlaufen Sie das nächste Element. Wenn es anders ist, speichern Sie das aktuelle Element im $result-Array und verlassen Sie dann die Schleife.

Der spezifische Code lautet wie folgt:

$source = array(  // 原始的二维数组
  array('name'=>'Tom','age'=>18),
  array('name'=>'Jack','age'=>23),
  array('name'=>'Mary','age'=>21),
  array('name'=>'Tom','age'=>20),
  array('name'=>'Jim','age'=>32)
);

$result = array();  // 存放没有重复值的元素

foreach ($source as $value) {
  $flag = true;  // 标记是否存在重复值
  foreach ($result as $v) {
    if ($value['name'] == $v['name']) {
      $flag = false;
      break;
    }
  }
  if ($flag) {
    $result[] = $value;
  }
}

print_r($result); // 输出结果:Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jack [age] => 23 ) [2] => Array ( [name] => Mary [age] => 21 ) [4] => Array ( [name] => Jim [age] => 32 ) )
Im obigen Code definieren wir zunächst ein leeres Array $result und verwenden dann eine zweischichtige foreach-Schleife, um das ursprüngliche zweidimensionale Array $source zu durchlaufen. Wenn festgestellt wird, dass der Namenswert des aktuellen Elements bereits im $result-Array vorhanden ist, wird die aktuelle Schleife direkt verlassen und das nächste Element weiter durchlaufen. Wenn keine doppelten Werte vorhanden sind, wird das aktuelle Element im gespeichert $result-Array.

2. Verwenden Sie die in PHP integrierte Array-Funktion array_unique

PHP verfügt über eine integrierte Array-Funktion array_unique, mit der doppelte Werte in einem Array entfernt werden können. Diese Funktion ist sehr einfach. Sie müssen lediglich ein Array als Parameter übergeben und erhalten ein neues Array, in dem alle doppelten Werte entfernt wurden. Wenn Sie die Funktion array_unique verwenden möchten, um doppelte Werte in einem zweidimensionalen Array zu entfernen, können wir den folgenden Code verwenden:

$source = array(  // 原始的二维数组
  array('name'=>'Tom','age'=>18),
  array('name'=>'Jack','age'=>23),
  array('name'=>'Mary','age'=>21),
  array('name'=>'Tom','age'=>20),
  array('name'=>'Jim','age'=>32)
);

$name_arr = array_column($source, 'name');  // 获取所有name值的数组
$unique_arr = array_unique($name_arr);  // 去重
$result = array();  // 存放没有重复值的元素
foreach ($source as $value) {
  if (in_array($value['name'], $unique_arr)) {
    $result[] = $value;
  }
}
print_r($result); // 输出结果:Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jack [age] => 23 ) [2] => Array ( [name] => Mary [age] => 21 ) [4] => Array ( [name] => Jim [age] => 32 ) )
Im obigen Code verwenden wir zunächst die Funktion array_column, um die Namenswerte zu erhalten ​in allen zweidimensionalen Arrays und verwenden Sie dann die Funktion array_unique, um doppelte Werte zu entfernen. Als nächstes durchlaufen wir das ursprüngliche zweidimensionale Array erneut und speichern das aktuelle Element im $result-Array, wenn der Namenswert des aktuellen Elements in $unique_arr vorhanden ist.

Zusammenfassung:

Die oben genannten Methoden sind zwei Methoden, um festzustellen, ob in einem zweidimensionalen PHP-Array doppelte Werte vorhanden sind. Mit diesen beiden Methoden können Sie schnell feststellen, ob in einem zweidimensionalen Array doppelte Elemente vorhanden sind. Unter anderem ist die Methode zur Verwendung der in PHP integrierten Funktion array_unique einfacher, verbraucht aber auch mehr Rechenressourcen, während die Methode zur Verwendung von zwei Ebenen der Foreach-Schleifenverschachtelung flexibler und effizienter ist. Entwickler können basierend auf ihren spezifischen Anforderungen die Methode auswählen, die für sie am besten geeignet ist.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, ob in einem zweidimensionalen Array in PHP doppelte Werte vorhanden 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