Heim  >  Artikel  >  Backend-Entwicklung  >  Die Schlüsselwerte des PHP-Arrays sind umgekehrt, was einen großen Einfluss auf die PK-Leistung hat

Die Schlüsselwerte des PHP-Arrays sind umgekehrt, was einen großen Einfluss auf die PK-Leistung hat

WBOY
WBOYOriginal
2024-05-04 13:21:011003Durchsuche

Die Auswirkungen der Verwendung von array_flip() zum Umkehren der Array-Schlüsselwerte auf die Leistung: Die Ausführungszeit wächst O(n^2) mit der Array-Größe. Praktischer Fall: Ermitteln Sie den Schlüssel eines assoziativen Arrays nach Wert.

PHP 数组键值颠倒,性能影响大 PK

PHP-Array-Schlüsselwertumkehr: Auswirkungen auf Leistung und praktische Fälle

In PHP ist Array eine häufig verwendete Datenstruktur. Manchmal müssen wir den Schlüsselwert eines Arrays umkehren. Dies ist ein häufiger Vorgang, dessen Auswirkungen auf die Leistung jedoch häufig übersehen werden.

PHP stellt hierfür die Funktion array_flip() zur Verfügung. Diese Funktion gibt ein neues Array zurück, in dem die Schlüssel des ursprünglichen Arrays umgekehrt sind. array_flip() 函數來執行此操作。該函數返回一個新的數組,其中原數組的鍵值被顛倒。

讓我們比較一下在不同大小的數組上使用 array_flip() 函數的性能:

$array1 = range(0, 9999);
$array2 = range(0, 99999);
$array3 = range(0, 999999);

$time_start = microtime(true);
$flipped_array1 = array_flip($array1);
$time_end = microtime(true);
$elapsed_time1 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array2 = array_flip($array2);
$time_end = microtime(true);
$elapsed_time2 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array3 = array_flip($array3);
$time_end = microtime(true);
$elapsed_time3 = $time_end - $time_start;

echo "執行時間:\n";
echo "10,000 個元素:$elapsed_time1 秒\n";
echo "100,000 個元素:$elapsed_time2 秒\n";
echo "1,000,000 個元素:$elapsed_time3 秒\n";

從結果中,我們可以看出,使用 array_flip() 函數的執行時間會隨著數組大小的增加而增加。這是因為 array_flip() 函數在內部使用了一個巢狀迴圈,其複雜度為 O(n^2)。

實戰案例

一個使用 array_flip()

Vergleichen wir die Leistung der Verwendung der Funktion array_flip() auf Arrays unterschiedlicher Größe: 🎜
$associated_array = [
    "red" => "#FF0000",
    "blue" => "#0000FF",
    "green" => "#00FF00",
];

$flipped_array = array_flip($associated_array);

echo $flipped_array["#00FF00"]; // 輸出:green
🎜Anhand der Ergebnisse können wir sehen, dass die Ausführungszeit bei Verwendung von array_flip() beträgt der Funktion nimmt mit zunehmender Arraygröße zu. Dies liegt daran, dass die Funktion array_flip() intern eine verschachtelte Schleife verwendet, die eine Komplexität von O(n^2) hat. 🎜🎜🎜Praktischer Fall🎜🎜🎜Ein praktischer Fall mit der Funktion array_flip() besteht darin, die Schlüsselwerte eines assoziativen Arrays umzukehren, sodass der Schlüssel anhand des Werts ermittelt werden kann. Zum Beispiel: 🎜rrreee

Das obige ist der detaillierte Inhalt vonDie Schlüsselwerte des PHP-Arrays sind umgekehrt, was einen großen Einfluss auf die PK-Leistung hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn