目次
PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析
1. 組み込み array_flip() 関数
2. 手動トラバーサル
を使用する これは、ksort を使用して行うことができます。 () および
出力:
ホームページ バックエンド開発 PHPチュートリアル PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

May 04, 2024 pm 10:39 PM
php 配列

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

PHP 数组键值互换:常见算法的优缺点剖析

PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

PHP では、キーと値の位置を交換する必要がある場合があります。配列内の値。この記事では、3 つの一般的なアルゴリズムを検討し、それらの長所と短所を分析し、実際のケースを通じて比較します。

1. 組み込み array_flip() 関数

array_flip() は、キーと値を交換するために特に使用される組み込み PHP 関数です。 。その構文は非常に単純です:

$swappedArray = array_flip($array);

利点:

  • 使いやすく、1 行のコードで交換を完了できます
  • 高効率

欠点:

  • 値は一意である必要があります。そうでないとキーが上書きされます
  • 多次元を処理できません配列

2. 手動トラバーサル

##手動トラバーサルを使用してキーと値の交換を実現できます:

$swappedArray = [];
foreach ($array as $key => $value) {
    $swappedArray[$value] = $key;
}

#利点:

多次元配列を処理できる
    #例外を制御できる
  • #欠点:

#長いコードと実行効率が低い

    3.
  • ksort()
array_keys()

を使用する これは、ksort を使用して行うことができます。 () および

array_keys()

キーと値の交換を間接的に実装する関数: <pre class='brush:php;toolbar:false;'>$sortedArray = ksort($array); $swappedArray = array_keys($sortedArray);</pre>利点:

処理可能任意のタイプの配列

ソート順を制御できる
  • 欠点:

実行効率が低い

    実際的なケース
  • 以下は、これら 3 つのアルゴリズムのパフォーマンスを比較する実際的なケースです:
$data = [
    'apple' => 'red',
    'banana' => 'yellow',
    'orange' => 'orange',
];

$start = microtime(true);
$swappedArray1 = array_flip($data);
$end = microtime(true);
echo "array_flip(): " . ($end - $start) . " seconds\n";

$start = microtime(true);
$swappedArray2 = [];
foreach ($data as $key => $value) {
    $swappedArray2[$value] = $key;
}
$end = microtime(true);
echo "Manual traversal: " . ($end - $start) . " seconds\n";

$start = microtime(true);
ksort($data);
$swappedArray3 = array_keys($data);
$end = microtime(true);
echo "ksort() + array_keys(): " . ($end - $start) . " seconds\n";

出力:

array_flip(): 0.000004006500244 seconds
Manual traversal: 0.000020980834961 seconds
ksort() + array_keys(): 0.000005984306335 seconds

結果からわかるように、

array_flip()

関数は効率の面で優れています。多次元配列や異常な状況を処理する場合は、手動トラバーサルの方が適しています。

ksort()

array_keys() このメソッドの効率も非常に高いですが、ソート順序を制御することはできません。

以上が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 ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

AISIアシスタントの本物のダウンロードportal_aisiアシスタントのiPhoneインストールリンク AISIアシスタントの本物のダウンロードportal_aisiアシスタントのiPhoneインストールリンク Sep 16, 2025 am 11:30 AM

AISIアシスタントの公式ダウンロードポータルは、公式Webサイトhttps://www.i4.cn/にあり、コンピューターとモバイルのダウンロード、デバイス管理、アプリケーションのインストール、モードスイッチング、画面投影、ファイル管理機能をサポートしています。

Xiaohongshu dandelion_liaohongshu Dandelion公式ウェブサイトアクセスの入り口を検索するためのヒント Xiaohongshu dandelion_liaohongshu Dandelion公式ウェブサイトアクセスの入り口を検索するためのヒント Sep 16, 2025 pm 12:15 PM

リトルレッドブックのタンポポの入り口には、モバイルアプリまたはコンピューターからアクセスできます。 1。モバイル:Xiaohongshuアプリを開き、本名認証を完了したアカウントにログインし、「私」をクリックしてパーソナルセンターに入り、「クリエーションセンター」または「協力センター」を見つけ、「より多くのサービス」をクリックし、「ブロガーの協力」または「Dandelionメンバー」を選択して入力します。 2。コンピューター:公式ウェブサイトhttps://in.xiaohongshu.com/にアクセスし、右上隅の「ログイン」をクリックし、認定された作成者アカウントを使用してログインを承認します。システムは、IDを自動的に識別し、対応するインターフェイスに入ります。新規ユーザーは、エントリーを完了するために、身元証明書、ビジネスライセンス、その他の資料を提出する必要があります。このプラットフォームは、データ分析、ブロガースクリーニング、協力管理、コンテンツ配信、暖房などの機能を提供し、複数の協力モードをサポートします。

Google Earthの最新バージョンは、インストールなしでオンラインで使用されています3Dグローブ Google Earthの最新バージョンは、インストールなしでオンラインで使用されています3Dグローブ Sep 16, 2025 pm 12:39 PM

Google Earth Online Accessの最新バージョンはhttps://earth.google.com/web/で、グローバル高解像度衛星画像、3D地形、ストリートパノラマ、歴史的な画像のバックトラッキングをサポートしています。ダウンロードせずにブラウザでスムーズに動作し、アカウントを介してコレクションとカスタムランドマークを同期させることができます。

xuanshu.com読み取りlink_xuanshu.com電子書籍オンラインアクセスアドレス xuanshu.com読み取りlink_xuanshu.com電子書籍オンラインアクセスアドレス Sep 16, 2025 pm 02:27 PM

Xuanshu.comの読書リンクはhttps://www.xswang.comです。このプラットフォームは、ファンタジーや都市などの主流のテーマをカバーする明確に分類された新しいリソースを提供し、パーソナライズされた読書設定と進行状況の同期をサポートし、ユーザーの読書体験を改善するためのコメント領域と著者の相互作用機能を備えています。

メールアドレスがPHPで有効かどうかを確認する方法は? メールアドレスがPHPで有効かどうかを確認する方法は? Sep 21, 2025 am 04:07 AM

usefilter_var()tovalidateemailsyntaxandcheckdnsrr()toverifydomainmxrecords.example:$ email = "user@example.com"; if($ email、filter_validate_email)

PHPでクライアントのIPアドレスを取得する方法は? PHPでクライアントのIPアドレスを取得する方法は? Sep 18, 2025 am 02:27 AM

therealclientipinphpcanberetrievedingingprioritizedcheckofhttpheaderslikehttp_client_ip、http_x_forwarded_for、andhttp_x_real_ip、fallinebacktoremote_addr、withvalidationtopreventspoofing。

セッションを使用してPHPに変数を保存する方法は? セッションを使用してPHPに変数を保存する方法は? Sep 18, 2025 am 05:21 AM

セッションを開始するには、session_start()に電話する必要があります。 2。$ _Sessionを使用して、$ _Session ['username'] = 'john_doe'などのデータを保存します。 3.クロスページアクセスの前に、session_start()を呼び出し、変数の存在を確認する必要があります。 4。unset()を使用して単一のセッションを削除し、session_destroy()すべてのデータをクリアします。

PHPでファイル拡張機能を取得するにはどうすればよいですか? PHPでファイル拡張機能を取得するにはどうすればよいですか? Sep 20, 2025 am 05:11 AM

usepathinfo($ filename、pathinfo_extension)togetthefileextension; itreliailailavaliavelyhandlesmultipledotsendedgecases、returningtheextension(例えば、 "pdf")oranemptystringifnoneexists。

See all articles