Rumah > Artikel > pembangunan bahagian belakang > Nilai kunci tatasusunan PHP diterbalikkan, yang mempunyai kesan yang besar pada prestasi PK
Kesan prestasi menggunakan array_flip() untuk membalikkan nilai kunci tatasusunan: masa pelaksanaan meningkatkan O(n^2) dengan saiz tatasusunan. Kes praktikal: Dapatkan kunci tatasusunan bersekutu mengikut nilai.
Pembalikan nilai kunci tatasusunan PHP: kesan ke atas prestasi dan kes praktikal
Dalam PHP, tatasusunan ialah struktur data yang biasa digunakan, kadangkala kita perlu membalikkan nilai utama tatasusunan. Ini adalah operasi biasa, tetapi kesannya terhadap prestasi sering diabaikan.
PHP menyediakan fungsi array_flip()
untuk melakukan ini. Fungsi ini mengembalikan tatasusunan baharu di mana kunci tatasusunan asal diterbalikkan. 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()
array_flip()
pada tatasusunan saiz yang berbeza: 🎜$associated_array = [ "red" => "#FF0000", "blue" => "#0000FF", "green" => "#00FF00", ]; $flipped_array = array_flip($associated_array); echo $flipped_array["#00FF00"]; // 輸出:green🎜Daripada keputusan, kita dapat melihat bahawa menggunakan
array_flip()
Masa pelaksanaan fungsi bertambah apabila saiz tatasusunan bertambah. Ini kerana fungsi array_flip()
menggunakan gelung bersarang secara dalaman, yang mempunyai kerumitan O(n^2). 🎜🎜🎜Kes praktikal🎜🎜🎜Satu kes praktikal menggunakan fungsi array_flip()
adalah untuk menterbalikkan nilai kekunci bagi tatasusunan bersekutu, supaya kunci itu boleh diperoleh mengikut nilai. Contohnya: 🎜rrreeeAtas ialah kandungan terperinci Nilai kunci tatasusunan PHP diterbalikkan, yang mempunyai kesan yang besar pada prestasi PK. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!