Heim >Backend-Entwicklung >PHP-Problem >PHP gleiches Array ersetzt Schlüsselwert

PHP gleiches Array ersetzt Schlüsselwert

WBOY
WBOYOriginal
2023-05-19 10:36:38556Durchsuche

In der Entwicklung müssen wir häufig Arrays bedienen. Eine der häufigsten Anforderungen besteht darin, die Schlüsselnamen im Array zu ersetzen, z. B. das Ersetzen eines Schlüsselnamens von „user_id“ durch „id“. In PHP können wir die Array-Funktionen array_combine und array_values ​​zum Ersetzen verwenden. Diese Funktionen weisen jedoch einige Einschränkungen auf, sodass wir andere Methoden verwenden müssen, um Schlüsselwerte durch dasselbe Array zu ersetzen.

1. Verwenden Sie die Funktion array_map

Die Funktion array_map in PHP kann verwendet werden, um eine Callback-Funktion auf jeden Schlüssel oder Wert im Array anzuwenden. Mit dieser Funktion können wir auf jedes Element des Arrays eine Rückruffunktion anwenden, um den Schlüsselnamen zu ersetzen.

Beispielcode:

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = array_map(function($key) {
  if($key == 'user_id') {
    return 'id';
  }
  return $key;
}, array_keys($arr));

$arr = array_combine($new_arr, array_values($arr));

Im obigen Code verwenden wir die Funktion array_map, um eine Rückruffunktion auf jeden Schlüsselnamen im Array anzuwenden, wenn der Schlüsselname „user_id“ ist ", ersetzen Sie es durch "id", andernfalls wird der ursprüngliche Schlüsselname zurückgegeben. Dann verwenden wir die Funktion array_combine, um den neuen Schlüsselnamen und den ursprünglichen Wert wieder in einem neuen Array zu kombinieren.

2. Verwenden Sie die foreach-Schleife

Eine andere Möglichkeit, Schlüsselnamen durch dasselbe Array zu ersetzen, besteht darin, die foreach-Schleife in PHP zu verwenden, um das Array zu durchlaufen. Wir können jedes Element im ursprünglichen Array in ein neues Array kopieren, aber beim Kopieren die Schlüsselnamen des ursprünglichen Arrays ändern.

Beispielcode:

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = [];

foreach($arr as $key => $value) {
  if($key == 'user_id') {
    $key = 'id';
  }
  $new_arr[$key] = $value;
}

$arr = $new_arr;

Im obigen Code verwenden wir ein neues Array $new_arr, um jedes Element im ursprünglichen Array in das neue Array zu kopieren. Wenn beim Kopieren der Schlüsselname des ursprünglichen Arrays „user_id“ lautet, ersetzen Sie ihn durch „id“.

3. Verwenden Sie die Funktion array_reduce

Die Funktion array_reduce kann verwendet werden, um Reduktionsberechnungen für alle Elemente im Array durchzuführen und kann auch zum Ersetzen von Schlüsselnamen im verwendet werden Array.

Beispielcode:

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = array_reduce(array_keys($arr), function($result, $key) use ($arr) {
  if($key == 'user_id') {
    $key = 'id';
  }
  $result[$key] = $arr[$key];
  return $result;
}, []);

$arr = $new_arr;

Im obigen Code übergeben wir den Schlüsselnamen des Arrays an die Funktion array_reduce und definieren eine anonyme Funktion, um den Schlüsselnamen zu ersetzen. In der Funktion ermitteln wir zunächst, ob der Schlüsselname „user_id“ ist. Wenn ja, ersetzen Sie ihn durch „id“, andernfalls verwenden Sie den ursprünglichen Schlüsselnamen. Fügen Sie dann das neue Schlüssel-Wert-Paar zum Rückgabewert-Array hinzu und verwenden Sie schließlich das zurückgegebene Array, um das ursprüngliche Array zu ersetzen.

Zusammenfassung

In PHP gibt es viele Möglichkeiten, Schlüsselnamen durch dasselbe Array zu ersetzen, einschließlich der Verwendung von Funktionen wie array_map, foreach und array_reduce. Verschiedene Funktionen werden auf unterschiedliche Weise verwendet und Sie müssen entsprechend den spezifischen Anforderungen und Szenarien eine Auswahl treffen. In der tatsächlichen Entwicklung müssen wir diese Methoden flexibel nutzen, um die Effizienz des Array-Betriebs und die Lesbarkeit des Codes zu verbessern.

Das obige ist der detaillierte Inhalt vonPHP gleiches Array ersetzt Schlüsselwert. 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