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

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

May 01, 2024 pm 12:30 PM
配列 キーワード: PHP

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

重複要素の検索における PHP 配列グループ化関数の役割 重複要素の検索における PHP 配列グループ化関数の役割 May 05, 2024 am 09:21 AM

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

配列を関数のパラメータとして使用できますか? 配列を関数のパラメータとして使用できますか? Jun 04, 2024 pm 04:30 PM

はい、多くのプログラミング言語では、配列を関数のパラメーターとして使用でき、関数はそこに格納されているデータに対して操作を実行します。たとえば、C++ の printArray 関数は配列内の要素を出力できますが、Python の printArray 関数は配列を走査してその要素を出力できます。これらの関数によって配列に加えられた変更は、呼び出し関数の元の配列にも反映されます。

PHPで配列キーを長さに応じてソートし、キーを保持するにはどうすればよいですか? PHPで配列キーを長さに応じてソートし、キーを保持するにはどうすればよいですか? May 02, 2024 pm 01:03 PM

uksort() 関数とカスタム比較関数 CompareKeyLengths を使用すると、キー名を保持しながら、配列キー名の長さに応じて PHP 配列を並べ替えることができます。比較関数はキーの長さの差を計算して整数を返し、uksort() はこの整数に従って配列を並べ替えます。さらに、実際のケースでは、フィールド名の長さによってデータベースのレコードを並べ替える方法を示します。

PHP コレクション クラスを使用して配列の交差部分と和集合を効率的に計算する PHP コレクション クラスを使用して配列の交差部分と和集合を効率的に計算する May 01, 2024 pm 09:06 PM

配列の交差と和集合は、PHP コレクション クラスを使用して効率的に計算できます。具体的な手順は次のとおりです。 intersect() メソッドを使用して、2 つの配列に同時に出現する要素の交差を計算します。 Union() メソッドを使用して和集合、つまり配列に現れる要素を計算します。実践例: ショッピング カートの内容を比較して、ユーザーの重複する製品や独自の製品を理解します。

PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析 PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析 May 04, 2024 pm 10:39 PM

PHP で配列キー値を交換するための 3 つの一般的なアルゴリズムには、それぞれ長所と短所があります。 array_flip(): シンプルで効率的ですが、値は一意である必要があり、多次元配列を処理できません。手動トラバーサル: 多次元配列を処理し、例外を制御できますが、コードが長くなり、効率も低下します。 ksort()+array_keys(): あらゆるタイプの配列を処理し、ソート順序を制御できますが、効率は低くなります。実際のケースでは、array_flip() が最も効率的であることが示されていますが、多次元配列を扱う場合は、手動による走査の方が適切です。

PHP 配列とリンク リストのアルゴリズム時間計算量の比較 PHP 配列とリンク リストのアルゴリズム時間計算量の比較 May 07, 2024 pm 01:54 PM

配列とリンク リストのアルゴリズムの時間計算量の比較: 配列 O(1) へのアクセス、リンク リスト O(n)、配列 O(1) の挿入、配列 O(1) の削除。 )、リンク リスト O(n) (n); 検索配列 O(n)、リンク リスト O(n)。

See all articles