Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyiapkan Awalan dengan Kekunci Tatasusunan dengan Cekap dalam PHP?

Bagaimana untuk Menyiapkan Awalan dengan Kekunci Tatasusunan dengan Cekap dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 06:40:03175semak imbas

 How to Efficiently Prepend a Prefix to Array Keys in PHP?

Menyediakan Awalan kepada Kekunci Tatasusunan Dengan Cekap

Apabila memanipulasi tatasusunan, selalunya perlu menambah awalan pada semua kunci. Operasi ini boleh dilakukan dalam beberapa cara, tetapi tidak semua pendekatan adalah sama cekap.

Penyelesaian Terpantas

Penyelesaian terpantas ialah menggunakan array_combine() bersama-sama dengan array_map ():

<code class="php">$prefix = "prefix";
$array = array_combine(
    array_map(fn($k) => $prefix . $k, array_keys($array)),
    $array
);</code>

Kaedah ini berulang ke atas kunci tatasusunan asal, menambahkan awalan dan mencipta tatasusunan baharu menggunakan array_combine() untuk menetapkan semula kunci dan nilai dengan sewajarnya.

Penyelesaian Lain

Penyelesaian lain termasuk:

  • Menggunakan gelung foreach untuk mengulangi setiap kekunci dan menambah awalan secara manual, diikuti dengan menyahset kekunci asal:
<code class="php">foreach ($array as $k => $v)
{
    $array[$prefix . $k] = $v;
    unset($array[$k]);
}</code>
  • Menggunakan kelas KeyPrefixer tersuai dengan kaedah __construct() dan kaedah mapArray() untuk melaksanakan operasi awalan dengan cekap:
<code class="php">$prefix = "prefix";
$array = KeyPrefixer::prefix($array, $prefix);</code>

Perspektif Sejarah

Sebelum PHP 5.3, pendekatan berbeza diperlukan:

<code class="php">$prefixer = new KeyPrefixer($prefix);
return $prefixer->mapArray($array);</code>

Kaedah ini menggunakan kelas tersuai dan array_map() dengan fungsi tanpa nama untuk memanipulasi kunci dan nilai.

Atas ialah kandungan terperinci Bagaimana untuk Menyiapkan Awalan dengan Kekunci Tatasusunan dengan Cekap dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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