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

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック

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

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

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

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

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

therealclientipinphpcanberetrievedingingprioritizedcheckofhttpheaderslikehttp_client_ip、http_x_forwarded_for、andhttp_x_real_ip、fallinebacktoremote_addr、withvalidationtopreventspoofing。

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

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