Heim > Backend-Entwicklung > PHP-Problem > So ändern Sie den Wert in einem zweidimensionalen Array in PHP

So ändern Sie den Wert in einem zweidimensionalen Array in PHP

PHPz
Freigeben: 2023-04-17 15:56:53
Original
1062 Leute haben es durchsucht

In PHP ist ein zweidimensionales Array ein häufiger Datentyp. Es besteht aus mehreren Arrays, von denen jedes mehrere Schlüssel und Werte enthalten kann. Wenn wir den Wert eines Elements in einem zweidimensionalen Array ändern müssen, können wir dazu einige von PHP bereitgestellte Funktionen und Syntax verwenden. In diesem Artikel besprechen wir, wie man die Werte in einem zweidimensionalen Array ändert.

1. Verwenden Sie die foreach-Schleife

In PHP wird häufig eine foreach-Schleife verwendet, um ein zweidimensionales Array zu durchlaufen. Wenn wir den Wert eines Elements ändern müssen, können wir die Übergabe als Referenz in der foreach-Schleife verwenden. Die Übergabe als Referenz bedeutet, dass die Adresse der Variablen übergeben wird, nicht der Wert der Variablen. Auf diese Weise wird nach der Änderung des Werts der Variablen in der Schleife auch das ursprüngliche Array geändert.

Zum Beispiel haben wir das folgende zweidimensionale Array:

$students = array(
  array('name' => 'Tom', 'age' => 18),
  array('name' => 'Jerry', 'age' => 20),
  array('name' => 'Lucy', 'age' => 22)
);
Nach dem Login kopieren

Wir müssen Toms Alter von 18 auf 19 ändern, Sie können den folgenden Code verwenden: #🎜🎜 #

foreach ($students as &$student) {
  if ($student['name'] == 'Tom') {
    $student['age'] = 19;
  }
}
Nach dem Login kopieren
Im obigen Code verwenden wir die Referenzübertragung & und ändern sie in der Schleife, indem wir den Wert des Schlüssels name beurteilen.

&,并且在循环中通过判断name键的值进行了修改。

二、使用array_map函数

除了使用foreach循环之外,我们还可以使用PHP提供的array_map函数来更改二维数组中的值。array_map函数可以接受一个函数作为参数,并将函数应用于数组的每个元素。这个函数可以返回一个经过修改的元素,进而更改原始数组中的值。

例如,我们有下面这个二维数组:

$prices = array(
  array('product' => 'pen', 'price' => 1.5),
  array('product' => 'pencil', 'price' => 0.5),
  array('product' => 'book', 'price' => 8)
);
Nach dem Login kopieren

我们需要将价格都乘以2,可以使用下面的代码:

function double_price($item) {
  $item['price'] *= 2;
  return $item;
}

$prices = array_map("double_price", $prices);
Nach dem Login kopieren

在上述代码中,我们定义了一个函数double_price,它将输入元素的价格乘以2,并返回修改后的元素。然后我们使用array_map函数调用这个函数,将结果存回原始数组。

三、使用array_walk_recursive函数

针对多维数组或包含子数组的二维数组,我们可以使用PHP提供的array_walk_recursive函数来更改值。与array_map类似,array_walk_recursive也接受一个函数作为参数,并将函数应用于数组的每个元素。不同的是,这个函数是递归地应用于数组的每个元素,包括子数组中的元素。

例如,我们有下面这个多维数组:

$marks = array(
  'Tom' => array('Chinese' => 80, 'Math' => 90),
  'Jerry' => array('Chinese' => 85, 'Math' => 95)
);
Nach dem Login kopieren

我们需要将Jerry的数学成绩从95改为100,可以使用下面的代码:

function update_jerry(&$value, $key) {
  if ($key == 'Jerry' && is_array($value) && isset($value['Math'])) {
    $value['Math'] = 100;
  }
}

array_walk_recursive($marks, 'update_jerry');
Nach dem Login kopieren

在上述代码中,我们定义了一个函数update_jerry2. Verwenden Sie die Funktion array_map

Zusätzlich zur Verwendung der foreach-Schleife können wir auch die von PHP bereitgestellte Funktion array_map verwenden, um die Werte in den beiden zu ändern. dimensionales Array. Die Funktion array_map kann eine Funktion als Argument akzeptieren und die Funktion auf jedes Element des Arrays anwenden. Diese Funktion kann ein geändertes Element zurückgeben und dadurch den Wert im ursprünglichen Array ändern.

Zum Beispiel haben wir das folgende zweidimensionale Array:

rrreee#🎜🎜#Wir müssen die Preise mit 2 multiplizieren, wir können den folgenden Code verwenden: #🎜🎜#rrreee #🎜🎜 #Im obigen Code definieren wir eine Funktion double_price, die den Preis des Eingabeelements mit 2 multipliziert und das geänderte Element zurückgibt. Anschließend rufen wir diese Funktion mit der Funktion array_map auf und speichern das Ergebnis wieder im ursprünglichen Array. #🎜🎜##🎜🎜#3. Verwenden Sie die Funktion array_walk_recursive #🎜🎜##🎜🎜#Für mehrdimensionale Arrays oder zweidimensionale Arrays, die Unterarrays enthalten, können wir die von PHP bereitgestellte Funktion array_walk_recursive verwenden, um den Wert zu ändern . Ähnlich wie array_map akzeptiert auch array_walk_recursive eine Funktion als Argument und wendet die Funktion auf jedes Element des Arrays an. Der Unterschied besteht darin, dass diese Funktion rekursiv auf jedes Element des Arrays angewendet wird, einschließlich Elementen in Unterarrays. #🎜🎜##🎜🎜#Zum Beispiel haben wir das folgende mehrdimensionale Array: #🎜🎜#rrreee#🎜🎜#Wir müssen Jerrys Mathe-Punktzahl von 95 auf 100 ändern. Sie können den folgenden Code verwenden: #🎜🎜# rrreee #🎜🎜#Im obigen Code definieren wir eine Funktion update_jerry, die den qualifizierten Wert im Eingabeelement auf 100 ändert. Anschließend rufen wir diese Funktion mit der Funktion array_walk_recursive auf, um das Ergebnis wieder im ursprünglichen Array zu speichern. #🎜🎜##🎜🎜#Fazit#🎜🎜##🎜🎜#In PHP gibt es viele Möglichkeiten, die Werte in einem zweidimensionalen Array zu ändern. Um dies zu erreichen, können wir eine foreach-Schleife, die Funktion array_map oder die Funktion array_walk_recursive verwenden. Verschiedene Methoden eignen sich für unterschiedliche Situationen, und wir können je nach spezifischen Anforderungen die am besten geeignete Methode auswählen. Unabhängig davon, welche Methode wir verwenden, sollten wir darauf achten, Best Practices zu befolgen, um die Lesbarkeit und Wartbarkeit des Codes sicherzustellen. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Wert in einem zweidimensionalen Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage