Heim  >  Artikel  >  Backend-Entwicklung  >  Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen

Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen

WBOY
WBOYOriginal
2024-05-01 12:30:01924Durchsuche

Zu den Methoden zum tiefen Kopieren von Arrays in PHP gehören: JSON-Kodierung und -Dekodierung mit json_decode und json_encode. Verwenden Sie array_map und clone, um tiefe Kopien von Schlüsseln und Werten zu erstellen. Verwenden Sie Serialize und Deserialize für die Serialisierung und Deserialisierung.

Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen

Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen

In PHP ist ein Array eine leistungsstarke Datenstruktur, die zum Speichern und Verwalten verwandter Daten verwendet wird. Manchmal müssen wir eine Kopie eines Arrays erstellen, um Operationen auszuführen oder um versehentliche Änderungen an seinen Originaldaten zu vermeiden. Hier kommt Deep Copy ins Spiel: Es erstellt ein neues Array, das alle Elemente des ursprünglichen Arrays enthält, einschließlich verschachtelter Arrays und Objekte.

Methode 1: json_decode und json_encodejson_decodejson_encode

<?php
$originalArray = [
    'name' => 'John Doe',
    'age' => 30,
    'hobbies' => ['reading', 'hiking', 'coding']
];

// JSON 编码原始数组
$jsonEncoded = json_encode($originalArray);

// JSON 解码 JSON 编码的字符串
$deepCopy = json_decode($jsonEncoded, true);

print_r($deepCopy);
?>

方法 2:array_mapclone

<?php
$originalArray = [
    'name' => 'Jane Smith',
    'age' => 25,
    'address' => ['street' => 'Main Street', 'number' => 123]
];

// 复制数组键及其值的深度副本
$deepCopy = array_map(function($value) {
    return is_array($value) ? array_map('clone', $value) : clone $value;
}, $originalArray);

print_r($deepCopy);
?>

方法 3:serializeunserialize

<?php
$originalArray = [
    'product' => 'Book',
    'quantity' => 5,
    'details' => ['author' => 'John Smith', 'publisher' => 'ACME Press']
];

// 序列化原始数组
$serialized = serialize($originalArray);

// 反序列化序列化字符串
$deepCopy = unserialize($serialized);

print_r($deepCopy);
?>

Methode 2: array_map und clone

<?php
// 原始购物篮数组
$originalCart = [
    ['product' => 'Book', 'quantity' => 3],
    ['product' => 'Pen', 'quantity' => 2],
    ['product' => 'Charger', 'quantity' => 1]
];

// 使用方法 1 创建购物篮副本
$deepCopy = json_decode(json_encode($originalCart), true);

// 在副本中移除一个商品
unset($deepCopy[1]);

// 输出更新后的购物篮副本
print_r($deepCopy);
?>

Methode 3: serialisieren und unserialisieren

🎜rrreee🎜🎜Praktischer Fall: Warenkorb-Manager🎜🎜🎜Stellen Sie sich einen Warenkorb-Manager vor, der die Einkaufsartikel des Benutzers im Warenkorb verwaltet . Um eine Änderung des ursprünglichen Warenkorbs zu vermeiden, müssen wir eine Kopie davon erstellen, um Vorgänge wie die Berechnung des Gesamtpreises oder das Entfernen von Artikeln durchzuführen. Durch tiefes Kopieren stellen wir sicher, dass wir über eine unabhängige Kopie verfügen, die den ursprünglichen Warenkorb nicht beeinträchtigt. 🎜rrreee

Das obige ist der detaillierte Inhalt vonDie Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen. 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