Heim  >  Artikel  >  Backend-Entwicklung  >  Können PHP-Array-Schlüsselwerte wiederholt werden?

Können PHP-Array-Schlüsselwerte wiederholt werden?

PHPz
PHPzOriginal
2023-04-19 09:18:37522Durchsuche

Array in PHP ist eine sehr verbreitete Datenstruktur, die es Ihnen ermöglicht, eine Reihe von Daten zusammen zu speichern und über verschiedene Arten von Schlüsselwerten wie Zahlen oder Zeichenfolgen auf diese Daten zuzugreifen. Bei der Arbeit mit PHP-Arrays stoßen Sie möglicherweise auf die Frage: Ist es möglich, mehrere Werte mit demselben Schlüssel zu speichern? In diesem Artikel wird diese Frage beantwortet und einige verwandte Konzepte und Techniken vorgestellt.

Zunächst sollte klar sein, dass das PHP-Array ein assoziatives Array ist, das Schlüsselwerte jedem Werttyp zuordnen kann. Dies bedeutet, dass jeder Schlüssel nur einem Wert entsprechen kann. Wenn Sie versuchen, mehrere Werte mit demselben Schlüssel zu speichern, überschreibt der neue Wert den alten Wert. Zum Beispiel:

$fruits = array(
  'apple' => 'red',
  'banana' => 'yellow',
  'apple' => 'green'
);

echo $fruits['apple']; // 输出 green

Wenn wir im obigen Beispiel „apple“ => „green“ zum Array „$fruits“ hinzufügen, wird das alte „apple“ => „red“ überschrieben. Wenn wir also $fruits['apple'] drucken, wird „grün“ zurückgegeben, nicht „rot“.

Das liegt daran, dass, wenn Sie in PHP denselben Zeichenfolgenschlüssel verwenden, um ein neues Element hinzuzufügen, das neue Element das alte Element ersetzt. Dies liegt daran, dass PHP die Schlüssel des Arrays als Schlüssel in einer Hash-Tabelle behandelt und wenn der Hash-Code des neuen Werts mit dem Hash-Code des alten Werts übereinstimmt, ersetzt der neue Wert den alten Wert. Dies bedeutet auch, dass, wenn Sie versuchen, Elemente wiederholt mit Ganzzahlschlüsseln hinzuzufügen, die neuen Elemente an das Ende des Arrays angehängt werden, anstatt die alten Werte zu ersetzen.

Zusätzlich zu den in den obigen Beispielen verwendeten Zeichenfolgenschlüsseln unterstützt PHP auch andere Arten von Schlüsseln, einschließlich Ganzzahlen, Gleitkommazahlen, booleschen Werten, Objekten usw. Da PHP alle Schlüssel in Zeichenfolgen umwandelt, kann es zu Problemen kommen, wenn Sie versuchen, Elemente mit unterschiedlichen Schlüsseltypen hinzuzufügen. Zum Beispiel:

$fruits = array(
  'apple' => 'red',
  0 => 'hello',
  1.5 => 'world',
  true => 'yes',
  new stdClass() => 'object'
);

print_r($fruits);

Im obigen Beispiel versuchen wir, Elemente mithilfe verschiedener Schlüsseltypen wie Integer, Float, Boolean und Object hinzuzufügen. Wenn Sie jedoch den obigen Code ausführen, werden Sie feststellen, dass alle Elemente zum Array hinzugefügt werden, die Schlüssel jedoch in Zeichenfolgen umgewandelt werden. Beispielsweise wird die Ganzzahl 0 in die Zeichenfolge „0“ konvertiert, der Gleitkommawert 1,5 wird in die Zeichenfolge „1,5“ konvertiert, der boolesche Wert true wird in die Zeichenfolge „1“ konvertiert und das Objekt wird in die Zeichenfolge konvertiert string ' [object]stdClass'.

In einigen Fällen müssen Sie möglicherweise mehrere Werte mit doppelten Schlüsseln speichern. Um diese Funktion zu erreichen, können Sie eine andere Datenstruktur von PHP verwenden – ein mehrdimensionales Array (mehrdimensionales Array). Mehrdimensionale Arrays können mehrere Arrays ineinander verschachteln, und jedes Array kann Schlüssel desselben Typs haben.

Das folgende Beispiel zeigt beispielsweise, wie ein mehrdimensionales Array zum Speichern mehrerer Farben verwendet wird:

$fruits = array(
  'apple' => array('red', 'green'),
  'banana' => array('yellow')
);

print_r($fruits);

Im obigen Beispiel haben wir ein $fruits-Array mit zwei Elementen erstellt, wobei jedes Element ein Array ist, und zwar zum Speichern von Fruchtfarben . Jetzt können wir auf eine bestimmte Farbe zugreifen, indem wir einen Schlüssel wie diesen verwenden:

echo $fruits['apple'][0]; // 输出 red
echo $fruits['apple'][1]; // 输出 green
echo $fruits['banana'][0]; // 输出 yellow

Bei der Verwendung mehrdimensionaler Arrays müssen wir uns darüber im Klaren sein, dass das Speichern mehrerer Werte durch die Verwendung verschachtelter Arrays die Komplexität des Codes erhöht und möglicherweise den Code beeinträchtigt schwieriger zu verstehen und aufrechtzuerhalten. Wenn Sie daher andere Datenstrukturen zum Speichern mehrerer Werte verwenden können, sollten Sie doppelte Schlüssel nach Möglichkeit vermeiden.

Zusammenfassend ist das PHP-Array ein assoziatives Array, das das Speichern mehrerer Werte mit demselben Schlüssel nicht zulässt. Wenn Sie mehrere Werte speichern müssen, können Sie die Verwendung eines mehrdimensionalen Arrays oder einer anderen Datenstruktur in Betracht ziehen. Wenn Sie unterschiedliche Schlüsseltypen verwenden, müssen Sie gleichzeitig beachten, dass PHP die Schlüssel automatisch in Zeichenfolgen umwandelt, was zu unnötigen Fehlern und Problemen führen kann.

Das obige ist der detaillierte Inhalt vonKönnen PHP-Array-Schlüsselwerte wiederholt werden?. 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