Dalam PHP, tatasusunan ialah jenis data yang kerap digunakan dan tatasusunan dua dimensi adalah lebih biasa. Tatasusunan dua dimensi boleh difahami sebagai tatasusunan yang mengandungi tatasusunan lain, iaitu setiap elemen dalam tatasusunan ialah tatasusunan. Dalam sesetengah kes, kita perlu memadamkan elemen daripada tatasusunan dua dimensi atau menapis nilai tertentu. Artikel ini akan memperkenalkan cara mengalih keluar nilai daripada tatasusunan dua dimensi.
Pertama lihat tatasusunan dua dimensi yang mudah, dengan anggapan ini ialah senarai pelajar, yang mengandungi nama dan umur setiap pelajar:
$students = array( array("name" => "张三", "age" => 20), array("name" => "李四", "age" => 21), array("name" => "王五", "age" => 22), array("name" => "赵六", "age" => 23) );
Sekarang kita perlu menambah pelajar berumur 22 Alih Keluar daripada senarai. Ini boleh dicapai dengan menggelung melalui tatasusunan:
foreach ($students as $key => $student) { if ($student["age"] == 22) { unset($students[$key]); } }
Di sini gelung foreach
digunakan untuk merentasi maklumat setiap pelajar Jika umur pelajar bersamaan dengan 22 tahun, gunakan fungsi unset
untuk menukar pelajar daripada Padam daripada tatasusunan.
Dalam contoh ini, kami menggunakan pembolehubah $key
untuk merekod indeks pelajar semasa, dan kemudian gunakan fungsi unset
untuk memadamkan pelajar yang sepadan dengan indeks. Perlu diingat bahawa apabila memadamkan elemen tatasusunan, nilai indeks tatasusunan tidak akan disusun semula mengikut tertib, jadi sebaiknya gunakan gelung foreach
untuk melintasi tatasusunan.
Selain menggunakan fungsi unset
, anda juga boleh menggunakan fungsi array_filter
terbina dalam PHP untuk menapis nilai dalam tatasusunan Sebagai contoh, kita boleh menggunakan kod berikut untuk menapis semua pelajar berumur 22 tahun:
$students = array_filter($students, function($student) { return $student["age"] != 22; });
Fungsi tanpa nama digunakan di sini sebagai parameter kedua fungsi array_filter
Fungsi menerima data pelajar dan menapisnya berdasarkan umur pelajar. Jika umur pelajar tidak bersamaan dengan 22 tahun, true
akan dikembalikan, jika tidak false
akan dikembalikan Fungsi array_filter
akan mengekalkan elemen dengan nilai pulangan true
, dan elemen dengan a. nilai pulangan false
akan ditapis keluar.
Selain menggunakan fungsi array_filter
, anda juga boleh menggunakan fungsi array_reduce
untuk melaksanakan fungsi penapisan. array_reduce
Fungsi menerima tiga parameter: tatasusunan yang akan diproses, fungsi panggil balik dan nilai awal. Fungsi panggil balik menerima dua parameter: setiap elemen tatasusunan dan hasil panggilan balik sebelumnya, dan kemudian mengembalikan hasil panggilan balik berikutnya. Sebagai contoh, kod berikut menggunakan fungsi array_reduce
untuk menapis pelajar yang berumur 22 tahun:
$students = array_reduce($students, function($result, $student) { if ($student["age"] != 22) { $result[] = $student; } return $result; }, array());
Fungsi tanpa nama digunakan di sini sebagai fungsi panggil balik Fungsi pertama menentukan sama ada umur pelajar adalah sama dengan 22 tahun Jika tidak, , kemudian tambahkan pelajar pada tatasusunan hasil, dan akhirnya kembalikan tatasusunan hasil. array_reduce
Fungsi menghantar data setiap pelajar ke fungsi panggil balik untuk diproses, dan akhirnya mengembalikan tatasusunan hasil yang ditapis.
Ringkasnya, PHP menyediakan banyak kaedah untuk memproses tatasusunan, termasuk mengalih keluar elemen daripada tatasusunan atau menapis nilai tertentu. Selain kaedah yang dinyatakan di atas, terdapat banyak lagi fungsi terbina dalam PHP yang boleh digunakan. Untuk senario dan keperluan yang berbeza, kaedah yang berbeza boleh dipilih mengikut situasi sebenar.
Atas ialah kandungan terperinci PHP mengalih keluar nilai daripada tatasusunan dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!