Senarai PHP, setiap fungsi merentasi tatasusunan
Mari kita kaji dua lagi fungsi tatasusunan yang menarik. Kedua-dua fungsi ini tidak sukar untuk dipelajari. Walau bagaimanapun, sesetengah pelajar akan menghadapi sedikit kesukaran. Kesukarannya terletak pada mencari ciri pengendalian fungsi senarai dan setiap fungsi.
fungsi senarai
Mari bincang tentang fungsi senarai dahulu:
senarai ( campur $variable1 [, mixed $variablen ] )
Fungsinya: tatasusunan indeks dengan subskrip 0 sepadan dengan pembolehubah 1, subskrip 1 sepadan dengan pembolehubah 2, dan seterusnya.
Mari kita lihat melalui eksperimen:
<?php list($one , $two , $three) = array('张三' ,'李四' ,'王五'); //再次声明:单引号不结释变量,所以输出的是字符串$one echo '$one----'.$one.'<br />'; echo '$two----'.$two.'<br />'; echo '$three----'.$three.'<br />'; ?>
Mari kita lihat keputusan eksperimen:
Hasil analisis adalah seperti yang ditunjukkan dalam rajah:
Kesimpulan:
1. Berikan Zhang San dengan indeks 0 hingga $one
2. Berikan Zhang San dengan indeks 1 Li Si ditugaskan kepada $two
3. Wang Wu dengan subskrip 2 ditugaskan kepada $three
Oleh itu, kita tahu bahawa fungsi senarai adalah dari kiri ke kanan, satu demi satu Sepadan dengan nilai subskrip bermula dari 0 dalam tatasusunan indeks.
Satu lagi penggunaan senarai:
<?php list( , , $three) = array('张三' ,'李四' ,'王五'); echo '$one----'.$one.'<br />'; echo '$two----'.$two.'<br />'; echo '$three----'.$three.'<br />'; ?>
Hasil jalankan:
Kesimpulan:
1.senarai Yang pertama dan tempat kedua untuk pembolehubah dibiarkan kosong, saya hanya menulis $tiga.
2. Menurut prinsip surat-menyurat satu dengan satu, tiada pembolehubah yang boleh sepadan dengan Zhang San dan Li Si.
3. Jadi hanya Wang Wu yang mempunyai surat-menyurat berubah
Sila ingat betul-betul: prinsip surat-menyurat satu-dengan-satu tatasusunan indeks. Pembolehubah pertama dalam senarai sepadan dengan elemen tatasusunan dengan subskrip 0, dan subskrip 1 sepadan dengan elemen tatasusunan kedua dalam senarai.
Teka apakah keputusan di bawah?
<?php list($one, $two, $three) = array(2 => '张三', '李四', '王五'); echo '$one----' . $one . '<br />'; echo '$two----' . $two . '<br />'; echo '$three----' . $three . '<br />'; ?>
Keputusan yang dijalankan adalah seperti berikut:
Ringkasan:
1. Kerana prinsip surat-menyurat satu sama satu, $one tidak boleh ditemui. Untuk elemen tatasusunan bertanda 0, $two tidak boleh mencari elemen tatasusunan dengan subskrip 1. Hanya $three mencari elemen tatasusunan dengan subskrip 2
3. Dalam senarai($one , $dua, $ tiga), saya hanya menulis tiga pembolehubah. Surat-menyurat selesai, tidak perlu sepadan dengan pembolehubah berikutnya, dan Li Si dan Wang Wu dibuang.
setiap fungsi
ketetapan setiap fungsi adalah lebih tersendiri dan menarik.
susun setiap satu ( tatasusunan &$array )
Fungsi: Hantar dalam tatasusunan. Ia akan memisahkan salah satu elemen ke dalam tatasusunan baharu. Lakukan satu elemen ini pada satu masa. Bergerak sekali dan kendalikan elemen tatasusunan seterusnya dengan cara yang sama. Laksanakan hingga akhir dan kembalikan palsu.
Mari kita lihat dahulu cara setiap satu beroperasi pada elemen tatasusunan.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', 'pl'=>'五官端正', 'type'=>'那就是女神', '我是吊丝不敢跟女神搭讪' ]; //第一次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; ?>
Mari kita lihat hasil pelaksanaan setiap satu buat kali pertama:
Ringkasan:
1. Baca yang pertama dalam $kongjie elemen, uraikan elemen pertama ('gao' => 'dalam pakaian hitam').
1 Selepas penguraian, elemen pertama menjadi tatasusunan baharu.
2Dalam tatasusunan baharu, letakkan nilai asal (yang berbaju hitam) dalam subskrip indeks 1, dan pada masa yang sama letakkannya dalam nilai subskrip yang berkaitan.
3. Dalam tatasusunan baharu, letakkan kunci asal (gao) ke dalam kunci subskrip yang berkaitan dan ke dalam subskrip indeks 0.
Kami menggunakan gambar untuk mewakilinya:
Dengan cara ini kita boleh memahaminya sekaligus.
Seterusnya mari kita bincangkan tentang ciri lain bagi setiap satu. Baca sekali dan gerakkan satu elemen ke belakang.
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; //第一次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第2次each $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第3次each【执行到了最后一个元素了】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; //第4次【此时,后面已没有可操作的元素了,看返回什么】 $data = each($kongjie); echo '<pre>'; var_dump($data); echo '</pre>'; echo '-----华丽丽分割线------<br />'; ?>
Hasil pelaksanaan:
Ringkasan:
1. Baca sekali dan gerak ke belakang sekali [Anda boleh bayangkan ada rekod anak panah dalam Move], nyahhimpun setiap elemen ke dalam tatasusunan baharu
2. Pada akhir bacaan, tiada unsur yang boleh dikendalikan, jadi palsu dikembalikan.
Senaraikan dan masing-masing bekerjasama
Kami tahu ciri-ciri senarai dan ciri-ciri setiap satu. Bolehkah senarai digabungkan dengan setiap satu untuk menyelesaikan beberapa kerja?
senarai($key,$value) = each($array);
Mari lihat gambar yang dinyatakan sebelum ini:
Pembolehubah pertama dalam senarai akan mencari elemen dengan indeks 0 di bawah untuk memberikan nilai, dan pembolehubah kedua akan mencari elemen dengan subskrip indeks 1 untuk menetapkan nilai kepada pembolehubah.
Mari kita lihat contoh berikut:
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'腿特别长特别细', 'mei'=>'好白', ]; list($key,$value) = each($kongjie); echo $key. '-----' .$value .'<br />'; ?>
Keputusan larian adalah seperti berikut:
Ringkasan:
1.setiap Pisahkan pembolehubah kepada 4 elemen
2. Senarai memberikan 0 =>gao kepada pembolehubah $key
3. Senarai memberikan 1 => memakai pakaian hitam kepada The pembolehubah $value
setiap satu akan kembali palsu pada penghujungnya, jadi saya boleh menggunakan gelung Boolean semasa untuk melengkapkan gelung tatasusunan.
Ubah suai kod di atas perlahan-lahan untuk mencapai kesan berikut:
<?php //定义一个变量叫$kongjie(空姐) $kongjie=[ 'gao'=>'穿黑衣服的', 'shou'=>'退特别长特别细', 'mei'=>'好白', ]; while(list($key,$value) = each($kongjie)){ echo $key. '-----' .$value .'<br />'; } ?>
Demonstrasi pelaksanaan:
Ringkasan:
1. Gelung sekali, laksanakan setiap satu, laksanakan kod, dan kemudian gerakkan satu elemen ke belakang
2. Kembali ke fasle pada penghujung pelaksanaan, jadi pelaksanaan berhenti.
3. Kesan yang sama seperti foreach boleh dicapai dengan menggabungkan setiap satu dan senarai.
Kerja Rumah:
Gunakan senarai dan setiap satu untuk melintasi 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: