php foreach merentasi tatasusunan bersekutu
Sintaks asas foreach
Kami belajar merentasi tatasusunan indeks subskrip berturut-turut melalui kandungan bab sebelumnya. Walau bagaimanapun, kami mendapati bahawa kami tidak boleh melintasi tatasusunan bersekutu, dan kami juga tidak boleh melintasi tatasusunan indeks dengan subskrip terputus.
Nah, semasa kita belajar tentang gelung, terdapat gelung Boolean yang digunakan khusus untuk menggelung melalui tatasusunan. Sintaks asas gelung ini ialah sintaks asas foreach.
Format sintaks adalah seperti berikut:
foreach( 要循环的数组变量 as [键变量 =>] 值变量){ //循环的结构体 }
Traverse tatasusunan bersekutu
Ini adalah penggunaan tetap, letakkan tatasusunan untuk digelungkan.
seperti kata kunci tetap Pembolehubah kunci selepas
adalah pilihan Tentukan pembolehubah mengikut kehendak Setiap kali ia bergelung, sintaks foreach akan mengeluarkan kunci dan menetapkannya kepada pembolehubah kunci selepas
. Pembolehubah nilai diperlukan. Setiap kali ia gelung, nilai diletakkan dalam pembolehubah nilai.
Mari kita gunakan kod sebagai contoh untuk meningkatkan pemahaman kita tentang sintaks ini.
<?php $data = [ 'fj' => '凤姐', 'fr' => '芙蓉', ]; foreach($data as $key => $value){ echo $key . '-------' . $value . '<br />'; } //如果我们只想读取值的话,就可以把下面的$key => 给删除掉,读取的时候,就只读取值了。做完上面的实验,你可以打开下面的代码再实验几次。 /* foreach($data as $value){ echo $value . '<br />'; } */ ?>
Mari jalankan dan lihat hasilnya:
Melalui keputusan berjalan di atas kita mendapat keputusan berikut:
1. Setiap kali anda gelung, tetapkan subskrip kepada pembolehubah $kunci dan tetapkan pembolehubah nilai kepada pembolehubah $value
2. Baca kunci dan nilai sekali dalam gelung. Seperti contoh di atas, selepas membaca "Kakak Feng", baca "Furong".
Nota: $key dan $value tidak semestinya nama pembolehubah. Anda juga boleh menamakannya sesuatu yang lain, seperti $kai => $wen adalah sama. Anda perlu mengetahui pembolehubah yang mana kunci diberikan dan pembolehubah lain nilai itu diberikan.
Melintasi tatasusunan indeks
foreach agak mudah dipelajari. Oleh itu, kita boleh melintasi tatasusunan indeks berterusan melalui foreach, seperti dalam contoh berikut:
<?php $data = array( 0 => '中国', 100 => '美国', 20 => '韩国', 300 => '德国', ); //待会儿可以自己做做实验,循环遍历一下下面的这个数组 //$data = array(1,2,3,4,5,6,7,8,9,10); foreach($data as $k => $v){ echo $k . '------' . $v .'<br />'; } ?>
Jalankan dan lihat hasilnya:
Penaakulan berdasarkan keputusan foreach adalah sama dengan apa yang baru kita lakukan Keputusan untuk tatasusunan bersekutu adalah sama.
Perbezaannya ialah tatasusunan indeks tak selanjar. Setiap kali elemen tatasusunan dibaca, subskrip gelung semasa diberikan kepada pembolehubah $k, dan nilai diberikan kepada pembolehubah $v. Kunci dan nilai adalah output untuk setiap bacaan dan kemudian dipaparkan. Gelung bergerak ke belakang satu indeks pada satu masa. Baca hingga akhir dan keluar dari pelaksanaan.
Melintasi tatasusunan berbilang dimensi
Bagaimanakah kita harus melintasi apabila terdapat tatasusunan lain dalam tatasusunan? Mari kita lakukan percubaan:
<?php $data = array( 0 => array( '中国' => 'china', '美国' => 'usa', '德国' => ' Germany', ), 1 => array( '湖北' => 'hubei', '河北' => 'hebei', '山东' => 'shandong', '山西' => 'sanxi', ), ); //注:我们在使用foreach循环时,第一次循环将键为0和键为1的两个数组赋值给一个变量($value)。然后,再套一个循环遍历这个$value变量,$value中的值取出来,赋值给$k和$v。 foreach($data as $value){ //第一次循环把国家的数组赋值给了$value //第二次循环把中国的省份的数组又赋值给了$value //因此,我在循环的时候把$value再遍历一次 foreach($value as $k => $v){ echo $k . '-----' . $v .'<br />'; } //为了看的更清晰,我在中间加上华丽丽的分割线方便你来分析 echo '----------分割线-----------<br />'; } ?>
Hasilnya keluar:
Ringkasan:
Dalam gelung pertama, tatasusunan ditugaskan kepada $value , dan kemudian gunakan foreach untuk menggelung ke atas $value. Berikan kunci dalam subarray dua dimensi kepada $k dan tetapkan nilai kepada pembolehubah $v.
Gelung pertama keluar dari gelung sub-tatasusunan, dan kod seterusnya dilaksanakan untuk memaparkan garis pembahagi.
Dan seterusnya untuk kitaran kedua.
Job
merentasi dan memaparkan tatasusunan berikut:
<?php $arr=array( '教学部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '宣传部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '财务部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), ); ?>
, kesannya adalah seperti berikut:
Ringkasan :
1. Dalam gelung pertama, tetapkan tatasusunan kepada $value, dan kemudian gunakan foreach untuk gelung $value. Berikan kunci dalam subarray dua dimensi kepada $k dan tetapkan nilai kepada pembolehubah $v.
2. Gelung pertama keluar dari gelung sub-tatasusunan dan melaksanakan kod berikutnya untuk memaparkan garis pembahagi.
3. Dan seterusnya, perkara yang sama berlaku untuk kitaran kedua.