Dalam PHP, anda hanya memerlukan pernyataan foreach untuk menggunakan gelung rujukan, kemudian mengendalikan (mengubah suai) tatasusunan asal dalam badan gelung akan mempengaruhi tatasusunan asal itu sendiri; value ){//Blok pernyataan badan gelung;}" atau "foreach ($array as $key => &$value){//Blok pernyataan badan gelung;}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer DELL G3
foreach ialah pernyataan yang direka khas untuk melintasi tatasusunan , ialah kaedah yang biasa digunakan semasa merentasi tatasusunan, dan memberikan kemudahan besar dalam merentasi tatasusunan selepas PHP5, objek juga boleh dilalui (foreach hanya boleh digunakan pada tatasusunan dan objek).
Pernyataan foreach merentasi tatasusunan tanpa mengira subskrip tatasusunan, dan boleh digunakan untuk tatasusunan indeks terputus dan tatasusunan bersekutu dengan rentetan sebagai subskrip.
Pernyataan foreach mempunyai dua format sintaks:
Format sintaks 1:
foreach ($array as $value){ //循环体语句块; }
Lintas tatasusunan $array yang diberikan dan tetapkan nilai tatasusunan semasa kepada $value dalam setiap gelung.
Format sintaks 2:
foreach ($array as $key => $value){ //循环体语句块; }
Melintasi tatasusunan $array yang diberikan, dalam setiap gelung Nilai tatasusunan semasa akan diberikan kepada $value, dan nama kunci akan diberikan kepada $key.
Penjelasan:
Setiap kali penyataan foreach bergelung, penunjuk di dalam tatasusunan akan bergerak ke hadapan satu langkah, supaya elemen tatasusunan seterusnya akan diperoleh pada yang seterusnya gelung. Berhenti melintasi dan keluar dari gelung sehingga ia mencapai penghujung tatasusunan.
Ubah suai tatasusunan asal dalam gelung foreach
Secara amnya, apabila anda menggunakan pernyataan foreach untuk melintasi tatasusunan, anda beroperasi pada sandaran tatasusunan secara amnya tidak menjejaskan tatasusunan itu sendiri.
Contohnya: ubah suai tatasusunan di dalam gelung, dan kemudian akses tatasusunan di luar gelung, anda akan mendapati tatasusunan itu tidak berubah
<?php header("Content-type:text/html;charset=utf-8"); $array= array(1,2,3,4,5,); echo "原数组:"; var_dump($array); foreach ($array as $value) { $value = $value*2; // 元素值乘以2 } echo "foreach处理后的数组:"; var_dump($array); ?>
Seperti yang anda lihat, dua Output adalah sama, dan elemen tatasusunan tidak berubah pada masa ini, pengubahsuaian kepada tatasusunan asal dalam gelung foreach adalah tidak sah.
Tetapi kadangkala perlu menukar tatasusunan melalui gelung foreach, apakah yang perlu kita lakukan?
boleh menggunakan gelung rujukan (iaitu, tambah $value
sebelum &
supaya pernyataan foreach akan menetapkan nilai melalui rujukan dan bukannya menyalin nilai), kemudian kendalikan tatasusunan asal dalam badan gelung, Ia akan menjejaskan tatasusunan asal itu sendiri.
<?php header("Content-type:text/html;charset=utf-8"); $array= array(1,2,3,4,5,); echo "原数组:"; var_dump($array); foreach ($array as &$value) { $value = $value*2; // 元素值乘以2 } echo "foreach处理后的数组:"; var_dump($array); ?>
Ia boleh dilihat bahawa elemen tatasusunan telah berubah, dan nilai elemen telah didarabkan dengan 2.
Tetapi ada tambahan &
sebelum elemen terakhir. Bagaimana untuk mengeluarkannya?
Ini kerana rujukan $value
bagi elemen terakhir tatasusunan kekal selepas gelung foreach. Kita perlu menggunakan unset() untuk memusnahkan tatasusunan sebelum mengeluarkannya.
unset($value); // 最后取消掉引用 var_dump($array)
&
Azimat itu hilang!
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai tatasusunan asal dalam php dalam gelung foreach. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!