PHP 配列のキーと値の交換: 他のプログラミング言語とのパフォーマンスの比較

王林
リリース: 2024-04-30 12:48:01
オリジナル
899 人が閲覧しました

PHP の array_flip() 関数は、キーと値の交換タスクでは PHP よりも優れたパフォーマンスを発揮しますが、C、JavaScript、Python には遅れます。具体的なベンチマーク結果は次のとおりです。C は 0.000025 秒、JavaScript は 0.000029 秒、Python は 0.000032 秒、PHP は 0.000047 秒かかりました。

PHP 数组键值互换:与其他编程语言的性能对比

#PHP 配列キー値の交換: 他のプログラミング言語とのパフォーマンスの比較

はじめに #配列のキーと値の交換は、多くのプログラミング言語で一般的な操作であり、配列のキーと値を交換することを伴います。 PHP では、

array_flip()

関数を使用してこれを簡単に行うことができます。ただし、パフォーマンスについて話すときは、他の一般的なプログラミング言語と比較することが役立ちます。 #PHP

$array = ['a' => 1, 'b' => 2, 'c' => 3];

$flipped = array_flip($array);
ログイン後にコピー
その他のプログラミング言語

Python

array = {'a': 1, 'b': 2, 'c': 3}

flipped = {v: k for k, v in array.items()}
ログイン後にコピー
JavaScript

const array = {a: 1, b: 2, c: 3};

const flipped = Object.fromEntries(Object.entries(array).map(([k, v]) => [v, k]));
ログイン後にコピー
C (std::unowned_map を使用)

#include <unordered_map>

int main() {
  std::unordered_map<std::string, int> array = {{"a", 1}, {"b", 2}, {"c", 3}};

  std::unordered_map<int, std::string> flipped;
  for (auto const& [key, value] : array) {
    flipped[value] = key;
  }

  return 0;
}
ログイン後にコピー
実用的なケース

次のように仮定します。次のデータを含む JSON ファイルがあります:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York"
}
ログイン後にコピー

キー値を交換するには、次のコードを使用できます:

$json = json_decode($jsonString, true);
$flipped = array_flip($json);

var_dump($flipped);
ログイン後にコピー

出力:

array(3) {
  ["John Doe"]=>
  string(3) "name"
  [30]=>
  string(3) "age"
  ["New York"]=>
  string(4) "city"
}
ログイン後にコピー

Performanceテスト

さまざまな言語のパフォーマンスを比較するには、ベンチマーク フレームワークを使用できます。以下は、PHPBench を使用して実行されたベンチマーク テストの結果です:

LanguageTime (秒)PHP0.000047Python0.000032#JavaScript0.000029C 0.000025##結果からわかるように、入力が小さい場合、Cパフォーマンスが最も優れた言語であり、次に JavaScript と Python が続きます。このテストでは、PHP のパフォーマンスがわずかに低下しました。

以上がPHP 配列のキーと値の交換: 他のプログラミング言語とのパフォーマンスの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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