Rumah >pembangunan bahagian belakang >tutorial php >Nilai tatasusunan PHP dan pertukaran kunci: pelaksanaan dan perbandingan prestasi
Dalam PHP, kunci tatasusunan dan nilai boleh ditukar melalui kaedah berikut: fungsi array_flip(): sintaks mudah, pertukaran nilai kunci langsung, kerumitan masa O(n). Fungsi tersuai: fleksibel dan boleh disesuaikan mengikut keperluan, tetapi kerumitan masa juga O(n). Operator Shift: Memerlukan pengetahuan PHP, lebih cekap dalam beberapa kes, masih O(n) kerumitan masa.
Dalam PHP, selalunya perlu menukar kunci dan nilai tatasusunan untuk pemprosesan selanjutnya. Terdapat pelbagai cara untuk melakukan ini, masing-masing dengan kebaikan dan keburukannya.
Fungsi array_flip()
ialah fungsi terbina dalam yang disediakan oleh PHP yang digunakan secara langsung untuk menukar nilai dan kunci tatasusunan. Menggunakannya sangat mudah, hanya lulus tatasusunan asal sebagai parameter: array_flip()
函数是 PHP 提供的直接用于数组值和键互换的内置函数。使用它非常简单,只需将原数组作为参数传递即可:
$originalArray = [ 'name' => 'John Doe', 'age' => 30, ]; $flippedArray = array_flip($originalArray); print_r($flippedArray);
输出:
Array ( [John Doe] => name [30] => age )
也可以定义一个自定义函数来实现数组值与键的互换:
function flipArray($array) { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; }
这个自定义函数的工作原理与 array_flip()
函数类似,但它提供了更大的灵活性。例如,可以添加额外的逻辑来处理特殊情况或根据需要修改输出格式。
位移操作符 (=>
) 也可以用来互换数组键和值。这种方法需要一定程度的 PHP 知识,但它在某些情况下可能比其他方法更有效率:
$originalArray = [ 'name' => 'John Doe', 'age' => 30, ]; $flippedArray = []; foreach ($originalArray as $key => $value) { $flippedArray[$value] = $key; }
实战案例
假设有一个包含产品信息的数组,需要根据产品名称获取其价格。可以使用值和键互换来快速转换数组,以便轻松查找所需的价格数据:
$products = [ 'Apple' => 10, 'Orange' => 5, ]; // 使用 array_flip() 互换键和值 $flippedProducts = array_flip($products); // 根据产品名称获取价格 $price = $flippedProducts['Orange'];
在上述示例中,$price
现在将包含产品 Orange
的价格,无需遍历整个原数组来查找它。
以下是使用不同的方法互换数组时性能的快速比较:
方法 | 时间复杂度 |
---|---|
array_flip() rrreee | Output: rrreee | Kaedah 2: Fungsi tersuai
rrreee | Ini fungsi tersuai berfungsi sama seperti fungsiKaedah 3: Operator Shift |
rrreee | Contoh PraktikalAndaikan terdapat tatasusunan yang mengandungi maklumat produk yang perlu Nama Produk untuk mendapatkan harganya. Tatasusunan boleh diubah dengan cepat menggunakan pertukaran nilai dan kunci untuk mencari data harga yang anda perlukan dengan mudah: |
Perbandingan prestasi
🎜Berikut ialah perbandingan pantas prestasi apabila menggunakan kaedah berbeza untuk menukar tatasusunan: 🎜Atas ialah kandungan terperinci Nilai tatasusunan PHP dan pertukaran kunci: pelaksanaan dan perbandingan prestasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!