PHP で配列をディープ コピーする方法には、JSON のエンコードとデコードに json_decode と json_encode を使用する方法が含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。
PHP 配列ディープ コピーの技術: さまざまな方法を使用して完全なコピーを実現する
PHP では、配列は強力なデータです関連データを保存および管理するために使用される構造。操作を実行するため、または元のデータが誤って変更されるのを避けるために、配列のコピーを作成する必要がある場合があります。ここでディープ コピーが登場します。ディープ コピーは、ネストされた配列やオブジェクトを含む、元の配列のすべての要素を含む新しい配列を作成します。
方法 1: json_decode
および json_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_map
および clone
<?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: serialize
および unserialize
<?php $originalArray = [ 'product' => 'Book', 'quantity' => 5, 'details' => ['author' => 'John Smith', 'publisher' => 'ACME Press'] ]; // 序列化原始数组 $serialized = serialize($originalArray); // 反序列化序列化字符串 $deepCopy = unserialize($serialized); print_r($deepCopy); ?>
実用的なケース: ショッピング カート マネージャー
ユーザーのショッピング バスケット内のアイテムを管理するショッピング カート マネージャーを考えてみましょう。元のバスケットの変更を避けるために、合計価格の計算や商品の削除などの操作を実行するために、そのコピーを作成する必要があります。ディープコピーにより、元のバスケットに影響を与えない独立したコピーが確保されます。
rree以上がPHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。