ホームページ > バックエンド開発 > PHPチュートリアル > PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する

WBOY
リリース: 2024-05-01 12:30:01
オリジナル
937 人が閲覧しました

PHP で配列をディープ コピーする方法には、JSON のエンコードとデコードに json_decode と json_encode を使用する方法が含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート