Penukaran nilai kunci tatasusunan PHP, persaingan kelajuan

WBOY
Lepaskan: 2024-05-03 12:06:01
asal
1055 orang telah melayarinya

Perbandingan kelajuan penukaran nilai kunci tatasusunan PHP: array_flip() ialah yang terpantas, beroperasi secara langsung pada tatasusunan, dan masa pelaksanaan ialah 0.0003 mikrosaat operator adalah kedua, dengan 0.0004 mikrosaat () adalah yang paling perlahan, yang memerlukan penciptaan Array sementara, masa pelaksanaan ialah 0.0007 mikrosaat.

PHP 数组键值转换,速度比拼谁更强

Penukaran nilai kunci tatasusunan PHP: persaingan kepantasan siapa yang lebih kuat

Dalam PHP, penukaran nilai kunci tatasusunan ialah operasi biasa, seperti menukar tatasusunan bersekutu kepada tatasusunan indeks atau menukar tatasusunan indeks kepada tatasusunan bersekutu. Terdapat beberapa cara untuk mencapai ini, tetapi prestasi mereka boleh berbeza-beza secara mendadak dalam kelajuan.

1. Fungsi array_flip()

Fungsi array_flip() boleh menukar nilai utama tatasusunan bersekutu. Sintaksnya mudah: array_flip() 函数可快速将关联数组的键值进行互换。它的语法很简单:

$array = array_flip($array);
Salin selepas log masuk

2. array() 运算符

array() 运算符也可以用于转换键值,但其语法略有不同:

$array = array(array_flip($array));
Salin selepas log masuk

3. array_combine() 函数

array_combine() 函数专门用于将两个数组合并成一个关联数组。它的语法如下:

$keys = array_keys($array);
$values = array_values($array);
$array = array_combine($keys, $values);
Salin selepas log masuk

实战案例

我们创建一个关联数组,并使用不同的方法对其进行键值转换:

$array = array(
    'name' => 'John Doe',
    'age' => 30,
    'city' => 'New York'
);

echo 'Original Array:' . PHP_EOL;
print_r($array);

echo 'Using array_flip():' . PHP_EOL;
$array = array_flip($array);
print_r($array);

echo 'Using array() operator:' . PHP_EOL;
$array = array(array_flip($array));
print_r($array);

echo 'Using array_combine():' . PHP_EOL;
$keys = array_keys($array);
$values = array_values($array);
$array = array_combine($keys, $values);
print_r($array);
Salin selepas log masuk

输出:

Original Array:
Array
(
    [name] => John Doe
    [age] => 30
    [city] => New York
)
Using array_flip():
Array
(
    [John Doe] => name
    [30] => age
    [New York] => city
)
Using array() operator:
Array
(
    [0] => Array
        (
            [John Doe] => name
            [30] => age
            [New York] => city
        )
)
Using array_combine():
Array
(
    [name] => John Doe
    [age] => 30
    [city] => New York
)
Salin selepas log masuk

速度比较

为了比较不同方法的速度,我们可以使用 microtime() 函数来测量执行时间:

$start = microtime(true);
$array = array_flip($array);
$end = microtime(true);
$time_array_flip = $end - $start;

$start = microtime(true);
$array = array(array_flip($array));
$end = microtime(true);
$time_array_operator = $end - $start;

$start = microtime(true);
$keys = array_keys($array);
$values = array_values($array);
$array = array_combine($keys, $values);
$end = microtime(true);
$time_array_combine = $end - $start;
Salin selepas log masuk

在多次执行测试后,我们可以看到以下结果:

方法 执行时间 (微秒)
array_flip() 0.0003
array() 运算符 0.0004
array_combine() 0.0007

结果表明,array_flip()rrreee

🎜2 operator array() 🎜🎜🎜array() operator juga boleh digunakan untuk menukar nilai kunci, tetapi sintaksnya berbeza sedikit: 🎜rrreee🎜 🎜3 . fungsi array_combine() 🎜🎜🎜array_combine() fungsi digunakan khas untuk menggabungkan dua tatasusunan ke dalam tatasusunan bersekutu. Sintaksinya adalah seperti berikut: 🎜rrreeee 🎜🎜 Kes praktikal 🎜🎜🎜 Kami membuat array bersekutu dan nilai kunci mengubahnya menggunakan kaedah yang berbeza: 🎜rrreeee🎜🎜output: 🎜🎜rrreeee🎜🎜speed comparison 🎜🎜🎜for containment Untuk kelajuan kaedah yang berbeza, kita boleh menggunakan fungsi microtime() untuk mengukur masa pelaksanaan: 🎜rrreee🎜Selepas melaksanakan ujian beberapa kali, kita boleh melihat keputusan berikut: 🎜 Kaedah Masa pelaksanaan (mikrosaat) array_flip() code><td>0.0003</td> array() operator 0.0004 array_combine() 0.0007 🎜Hasilnya menunjukkan bahawa, array_flip() menang pada kelajuan kerana ia beroperasi secara langsung pada tatasusunan, manakala kaedah lain memerlukan penciptaan tatasusunan sementara. 🎜

Atas ialah kandungan terperinci Penukaran nilai kunci tatasusunan PHP, persaingan kelajuan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!