PHP 中互換數組鍵值的三種常見演算法各有優缺點:array_flip():簡單高效,但值必須唯一且無法處理多維數組。手動遍歷:可以處理多維數組和控制異常,但程式碼較長且效率較低。 ksort() array_keys():可以處理任何類型陣列和控制排序順序,但效率較低。實戰案例表明,array_flip() 效率最高,但處理多維數組時,手動遍歷更合適。

在PHP 中,有時我們需要互換數組中鍵和值的位置。本文將探討三種常見的演算法,分析它們的優缺點,並透過實戰案例進行比較。
array_flip() 函數array_flip() 是內建的 PHP 函數,專門用來互換鍵和值。它的語法非常簡單:
$swappedArray = array_flip($array);
優點:
缺點:
$swappedArray = [];
foreach ($array as $key => $value) {
$swappedArray[$value] = $key;
}#優點:
缺點:
和array_keys()ksort() 和array_keys() 函數來間接實現鍵值互換:
$sortedArray = ksort($array); $swappedArray = array_keys($sortedArray);
#優點:
缺點:
$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中文網其他相關文章!