Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Tidak Mengubah Suai Nilai Tatasusunan dalam Gelung Foreach Berfungsi, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Tidak Mengubah Suai Nilai Tatasusunan dalam Gelung Foreach Berfungsi, dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Barbara Streisandasal
2024-11-28 06:08:18543semak imbas

Why Doesn't Modifying Array Values in a Foreach Loop Work, and How Can I Fix It?

Mengubah Suai Nilai Tatasusunan dengan Gelung Foreach

Dalam kod anda, anda menggunakan gelung foreach untuk mengulangi $bizaddarray dan mengubah suai setiap nilai menggunakan fungsi strip_tags, ucwords dan strtolower. Walau bagaimanapun, nampaknya teg HTML masih ada apabila anda menukar tatasusunan kepada rentetan kemudian. Ini kerana gelung foreach secara lalai mencipta salinan elemen tatasusunan, jadi sebarang perubahan yang anda buat pada salinan tersebut tidak ditunjukkan dalam tatasusunan asal.

Mengubahsuai Nilai Secara Terus

Untuk membuat perubahan kekal, anda perlu mengubah suai nilai tatasusunan asal secara langsung. Terdapat dua cara untuk mencapai ini:

Kaedah 1: Menggunakan Rujukan Memori

Kaedah ini melibatkan penggunaan & operator untuk mendapatkan rujukan kepada nilai tatasusunan asal. Sebarang perubahan yang anda buat melalui rujukan ini secara langsung akan mengubah suai elemen yang sepadan dalam tatasusunan asal.

foreach ($bizaddarray as &$value) {
    $value = strip_tags(ucwords(strtolower($value)));
}
unset($value); // Remove the reference to prevent unintended modifications

Kaedah 2: Menggunakan Tatasusunan Sumber

Kaedah ini melibatkan mengakses elemen tatasusunan sumber menggunakan pembolehubah $key. Sebarang perubahan yang anda buat melalui elemen ini juga akan mengemas kini tatasusunan asal.

foreach ($bizaddarray as $key => $value) {
    $bizaddarray[$key] = strip_tags(ucwords(strtolower($value)));
}

Dengan menggunakan salah satu kaedah ini, teg HTML hendaklah dialih keluar secara kekal daripada nilai tatasusunan anda dan ia akan ditunjukkan dalam rentetan penukaran.

Atas ialah kandungan terperinci Mengapa Tidak Mengubah Suai Nilai Tatasusunan dalam Gelung Foreach Berfungsi, dan Bagaimana Saya Boleh Membetulkannya?. 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