Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Array-Schlüsselwertkonvertierung, Geschwindigkeitswettbewerb

PHP-Array-Schlüsselwertkonvertierung, Geschwindigkeitswettbewerb

WBOY
WBOYOriginal
2024-05-03 12:06:011095Durchsuche

Vergleich der PHP-Array-Schlüssel-Wert-Konvertierungsgeschwindigkeit: array_flip() ist die schnellste, die direkt auf dem Array ausgeführt wird, und die Ausführungszeit beträgt 0,0003 Mikrosekunden; array_combine() ist die langsamste und erfordert die zweite Bei der Erstellung eines temporären Arrays beträgt die Ausführungszeit 0,0007 Mikrosekunden.

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

PHP-Array-Schlüsselwertkonvertierung: Beschleunigen Sie den Wettbewerb, wer stärker ist

In PHP ist die Array-Schlüsselwertkonvertierung eine häufige Operation, z. B. die Konvertierung eines assoziativen Arrays in ein Indexarray oder die Konvertierung eines Indexarrays zu einem assoziativen Array. Es gibt mehrere Möglichkeiten, dies zu erreichen, ihre Leistung kann jedoch in der Geschwindigkeit stark variieren.

1. Die Funktion array_flip()

Die Funktion array_flip() kann die Schlüsselwerte assoziativer Arrays schnell austauschen. Seine Syntax ist einfach: array_flip() 函数可快速将关联数组的键值进行互换。它的语法很简单:

$array = array_flip($array);

2. array() 运算符

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

$array = array(array_flip($array));

3. array_combine() 函数

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

$keys = array_keys($array);
$values = array_values($array);
$array = array_combine($keys, $values);

实战案例

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

$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);

输出:

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
)

速度比较

为了比较不同方法的速度,我们可以使用 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;

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

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

结果表明,array_flip()rrreee

🎜2. array()-Operator 🎜🎜🎜array()-Operator kann auch zum Konvertieren von Schlüsselwerten verwendet werden, seine Syntax ist jedoch etwas anders: 🎜rrreee🎜 🎜3 . array_combine()-Funktion 🎜🎜🎜array_combine()-Funktion wird speziell verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Seine Syntax ist wie folgt: 🎜rrreee🎜🎜 Praktischer Fall 🎜🎜🎜 Wir erstellen ein assoziatives Array und transformieren es mit verschiedenen Methoden per Schlüsselwert: 🎜rrreee🎜🎜Ausgabe: 🎜🎜rrreee🎜🎜Geschwindigkeitsvergleich🎜🎜🎜Zum Vergleich Für die Geschwindigkeit verschiedener Methoden können wir die Funktion microtime() verwenden, um die Ausführungszeit zu messen: 🎜rrreee🎜Nach mehrmaliger Ausführung des Tests können wir die folgenden Ergebnisse sehen: 🎜
Methode Ausführungszeit (Mikrosekunden)
array_flip() code><td>0,0003</td>
array() Operator 0,0004
array_combine() 0.0007
🎜Die Ergebnisse zeigen das, array_flip() gewinnt an Geschwindigkeit, da sie direkt auf Arrays arbeitet, während andere Methoden die Erstellung temporärer Arrays erfordern. 🎜

Das obige ist der detaillierte Inhalt vonPHP-Array-Schlüsselwertkonvertierung, Geschwindigkeitswettbewerb. 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