So ersetzen Sie den k-Wert in einem 2D-Array in PHP

PHPz
Freigeben: 2023-04-19 11:14:21
Original
610 Leute haben es durchsucht

PHP ist eine weit verbreitete Programmiersprache. Sie ist leicht zu erlernen, flexibel, effizient und Open Source und daher für viele Unternehmen und Entwickler zur Sprache der Wahl geworden. In PHP sind zweidimensionale Arrays auch eine der häufigsten Datenstrukturen. Sie können große Datenmengen speichern und schnelle Datenabfragen und -durchläufe durchführen. Dieser Artikel konzentriert sich darauf, wie man den k-Wert in einem zweidimensionalen Array in PHP ersetzt.

Zweidimensionales Array

In PHP ist Array ein sehr wichtiger Datentyp. Arrays können mehrere Werte unter einem Variablennamen speichern, und diese Werte können von unterschiedlichen Datentypen sein, z. B. Zeichenfolgen, Ganzzahlen, Objekte usw.

Arrays in PHP werden in eindimensionale Arrays und mehrdimensionale Arrays unterteilt. Unter diesen werden mehrdimensionale Arrays in zweidimensionale Arrays, dreidimensionale Arrays, vierdimensionale Arrays usw. unterteilt. Ein zweidimensionales Array bezieht sich auf ein Array, das mehrere eindimensionale Arrays enthält.

Der Beispielcode zum Definieren eines zweidimensionalen Arrays lautet wie folgt:

$students = array(
   array("name"=>"张三", "age"=>18, "score"=>85),
   array("name"=>"李四", "age"=>19, "score"=>90),
   array("name"=>"王五", "age"=>20, "score"=>75)
);
Nach dem Login kopieren

Der obige Code definiert ein zweidimensionales Array namens $students, das drei eindimensionale Arrays enthält. Jedes eindimensionale Array enthält drei Elemente, die den Namen, das Alter und die Note des Schülers darstellen.

Ersetzen Sie den k-Wert im zweidimensionalen Array.

Manchmal müssen wir einige k-Werte im zweidimensionalen Array ersetzen. Um dieses Ziel zu erreichen, können wir die in PHP bereitgestellten Funktionen array_map und array_column verwenden. Die spezifischen Schritte sind wie folgt:

Der erste Schritt besteht darin, die Funktion array_column zu verwenden, um eine bestimmte Spalte des ursprünglichen Arrays abzurufen und ein neues eindimensionales Array zu generieren. Der dieser Spalte entsprechende k-Wert ist der k-Wert, den wir ersetzen möchten.

Der Beispielcode lautet wie folgt:

$key_array = array_column($students, 'name');
Nach dem Login kopieren

Dieser Code extrahiert den Namensschlüsselwert jedes eindimensionalen Arrays im $students-Array, um ein neues eindimensionales Array $key_array zu bilden.

Der zweite Schritt besteht darin, die Funktion array_map zu verwenden, um das neue eindimensionale Array zu durchlaufen und den Wert jedes Elements durch die Rückruffunktion zu ersetzen. Verwenden Sie in der Rückruffunktion den Wert jedes Elements als neuen k-Wert, suchen Sie das diesem k-Wert entsprechende eindimensionale Array im ursprünglichen zweidimensionalen Array und ersetzen Sie seinen k-Wert durch den neuen k-Wert.

Der Beispielcode lautet wie folgt:

$new_key_array = array_map(function($val) use ($students) {
      foreach($students as &$student) {
         if($student['name'] == $val) {
            $student['new_name'] = $student['name'];
            unset($student['name']);
            return $student;
         }
      }  
}, $key_array);
Nach dem Login kopieren

Dieser Code durchläuft das Array $key_array. Für jedes Element $val durchläuft er das ursprüngliche Array $students durch eine foreach-Schleife und findet das eindimensionale Array, das $val entspricht Das ursprüngliche Array wird hinzugefügt und der Schlüsselwert „Name“ wird durch einen neuen Schlüsselwert „new_name“ ersetzt. Löschen Sie abschließend den ursprünglichen Namensschlüssel im eindimensionalen Array und geben Sie das geänderte eindimensionale Array zurück.

Der dritte Schritt besteht darin, das neue Array zu überprüfen, um zu bestätigen, ob der Ersetzungsvorgang wirksam wird.

Der endgültige Code lautet wie folgt:

$students = array(
  array("name"=>"张三", "age"=>18, "score"=>85),
  array("name"=>"李四", "age"=>19, "score"=>90),
  array("name"=>"王五", "age"=>20, "score"=>75)
);

$key_array = array_column($students, 'name');

$new_key_array = array_map(function($val) use ($students) {
  foreach($students as &$student) {
     if($student['name'] == $val) {
        $student['new_name'] = $student['name'];
        unset($student['name']);
        return $student;
     }
  }  
}, $key_array);

print_r($students);
Nach dem Login kopieren

Wenn wir den obigen Code ausführen, können wir die folgende Ausgabe erhalten:

Array
(
    [0] => Array
        (
            [age] => 18
            [score] => 85
            [new_name] => 张三
        )

    [1] => Array
        (
            [age] => 19
            [score] => 90
            [new_name] => 李四
        )

    [2] => Array
        (
            [age] => 20
            [score] => 75
            [new_name] => 王五
        )
)
Nach dem Login kopieren

Wie aus der Ausgabe ersichtlich ist, haben wir den ursprünglichen Namensschlüssel erfolgreich durch einen neuen Schlüssel new_name ersetzt.

Zusammenfassung

In PHP ist das Ersetzen des k-Werts in einem zweidimensionalen Array eine relativ häufige Operation. Durch die Verwendung der Funktionen array_map und array_column können wir diese Operation einfach implementieren. In der tatsächlichen Entwicklung müssen wir die am besten geeignete Methode zur Implementierung dieses Vorgangs entsprechend der spezifischen Situation auswählen, um die Entwicklungseffizienz und die Codequalität zu verbessern.

Das obige ist der detaillierte Inhalt vonSo ersetzen Sie den k-Wert in einem 2D-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