


Kaedah penapisan untuk tatasusunan pelbagai dimensi php
Memproses data dalam PHP ialah keperluan yang sangat biasa, dan tatasusunan berbilang dimensi ialah salah satu daripada struktur data biasa. Walau bagaimanapun, apabila menggunakan tatasusunan berbilang dimensi, kami tidak boleh mengelak daripada melakukan beberapa operasi penapisan data untuk memastikan ketepatan dan kesahihan data. Artikel ini akan memperkenalkan kaedah penapisan tatasusunan berbilang dimensi dalam PHP.
1. Kaedah penapisan array_map
array_map() ialah fungsi yang disediakan oleh PHP yang boleh menghantar setiap elemen dalam satu atau lebih tatasusunan kepada fungsi panggil balik tersuai yang ditentukan Dan mengembalikan tatasusunan baharu, iaitu elemen yang merupakan elemen yang diproses oleh fungsi panggil balik.
Kita boleh menggunakan fungsi array_map() untuk melaksanakan penapisan tatasusunan berbilang dimensi. Kaedah khusus adalah dengan terlebih dahulu melintasi tatasusunan berbilang dimensi, menghantar elemen yang perlu ditapis ke fungsi penapis untuk pemprosesan, dan kemudian menyimpan hasil yang diproses ke tatasusunan baharu. Berikut ialah contoh mudah:
// 多维数组 $data = array( array( 'name' => '张三', 'age' => 18, 'sex' => 'male', 'hobby' => array('swimming', 'reading', 'music'), ), array( 'name' => '李四', 'age' => 22, 'sex' => 'female', 'hobby' => array('swimming', 'dancing', 'shopping'), ), ); // 过滤函数 function filter($item) { if (!is_array($item)) { return trim($item); // 非数组的元素进行trim()处理 } else { return array_map('filter', $item); // 数组的元素递归调用filter()函数进行处理 } } $new_data = array_map('filter', $data); // 过滤后的多维数组
Dalam contoh di atas, kami mentakrifkan penapis fungsi penapis(), yang menentukan sama ada elemen itu ialah tatasusunan dan memanggil trim() yang disediakan oleh PHP pada bukan tatasusunan elemen. Fungsi menjalankan pemprosesan, secara rekursif memanggil dirinya sendiri untuk memproses elemen tatasusunan, dan akhirnya menyimpan hasil yang diproses ke tatasusunan $new_data baharu melalui fungsi array_map().
2. Kaedah penapisan array_walk_recursive
array_walk_recursive() ialah fungsi yang disediakan oleh PHP Ia boleh menggunakan fungsi yang ditentukan pengguna untuk setiap elemen dalam tatasusunan berbilang dimensi : Parameter pertama ialah nilai elemen semasa, dan parameter kedua ialah nama kunci elemen semasa. Untuk menapis data tatasusunan, kita boleh menggunakan fungsi ini untuk melintasi unsur-unsur dalam tatasusunan secara rekursif satu demi satu, dan kemudian memproses unsur-unsur yang perlu ditapis. Berikut ialah kod sampel:
// 多维数组 $data = array( array( 'name' => '张三', 'age' => 18, 'sex' => 'male', 'hobby' => array('swimming', 'reading', 'music'), ), array( 'name' => '李四', 'age' => 22, 'sex' => 'female', 'hobby' => array('swimming', 'dancing', 'shopping'), ), ); // 过滤函数 function filter(&$value, $key) { if (is_string($value)) { $value = trim($value); // 对字符串类型进行trim()处理 } } array_walk_recursive($data, 'filter'); // 过滤后的多维数组
Dalam contoh di atas, kami mentakrifkan penapis fungsi panggil balik(), yang menerima dua parameter Parameter pertama $value ialah nilai elemen semasa dan parameter kedua Parameter pertama $key ialah nama kunci bagi elemen semasa. Gunakan fungsi is_string() untuk menentukan sama ada elemen semasa adalah daripada jenis rentetan Jika ya, panggil fungsi trim() yang disediakan oleh PHP untuk diproses.
Selepas fungsi penapis ditakrifkan, kami melaksanakan operasi traversal pada tatasusunan berbilang dimensi dengan memanggil fungsi array_walk_recursive(), hantar setiap elemen ke fungsi panggil balik untuk pemprosesan, dan akhirnya mendapatkan hasil yang ditapis.
3. Kaedah penapisan array_filter
array_filter() ialah fungsi yang disediakan oleh PHP yang boleh menapis tatasusunan yang diberikan mengikut fungsi panggil balik yang ditentukan. Ia berulang melalui setiap elemen dalam tatasusunan dan menggunakan fungsi panggil balik untuk setiap elemen Nilai pulangan ialah tatasusunan elemen yang menilai kepada BENAR dalam fungsi panggil balik.
Kita boleh menggunakan fungsi array_filter() untuk menapis tatasusunan berbilang dimensi. Kaedah khusus adalah untuk melintasi elemen dalam tatasusunan berbilang dimensi dan menyimpan elemen yang memenuhi syarat penapisan ke dalam tatasusunan baharu. Berikut ialah contoh mudah:
// 多维数组 $data = array( array( 'name' => '张三', 'age' => 18, 'sex' => 'male', 'hobby' => array('swimming', 'reading', 'music'), ), array( 'name' => '李四', 'age' => 22, 'sex' => 'female', 'hobby' => array('swimming', 'dancing', 'shopping'), ), ); // 过滤函数 function filter($item) { return (strlen($item['name']) > 2); // 过滤满足条件的元素 } $new_data = array_filter($data, 'filter'); // 过滤后的多维数组
Dalam contoh di atas, kami mentakrifkan penapis fungsi panggil balik(), yang digunakan untuk memproses elemen yang perlu ditapis. Dalam fungsi penapis(), kami mengembalikan TRUE untuk elemen yang memenuhi syarat tertentu (di sini panjang 'nama' lebih besar daripada 2), jika tidak, kami mengembalikan FALSE. Selepas fungsi penapis ditakrifkan, kami memanggil fungsi array_filter() dan lulus tatasusunan untuk ditapis dan fungsi penapis untuk mendapatkan hasil yang ditapis.
Ringkasnya, kita boleh menggunakan pelbagai kaedah untuk menapis tatasusunan berbilang dimensi, termasuk fungsi seperti array_map(), array_walk_recursive() dan array_filter(). Kaedah yang hendak dipilih bergantung pada senario dan keperluan aplikasi tertentu.
Atas ialah kandungan terperinci Kaedah penapisan untuk tatasusunan pelbagai dimensi php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini meneroka pelaksanaan tugas tak segerak dalam PHP untuk meningkatkan respons aplikasi web. Ia memperincikan kaedah seperti beratur mesej, rangka kerja asynchronous (reactphp, swoole), dan proses latar belakang, menekankan amalan terbaik untuk kecekapan

Butiran artikel ini melaksanakan beratur mesej dalam PHP menggunakan RabbitMQ dan Redis. Ia membandingkan seni bina mereka (AMQP vs dalam memori), ciri-ciri, dan mekanisme kebolehpercayaan (pengesahan, urus niaga, kegigihan). Amalan terbaik untuk reka bentuk, kesilapan

Artikel ini mengkaji piawaian pengekodan PHP semasa dan amalan terbaik, memberi tumpuan kepada cadangan PSR (PSR-1, PSR-2, PSR-4, PSR-12). Ia menekankan peningkatan kebolehbacaan dan kebolehkerjaan kod melalui gaya yang konsisten, penamaan bermakna, dan EFF

Artikel ini menerangkan API Refleksi PHP, membolehkan pemeriksaan runtime dan manipulasi kelas, kaedah, dan sifat. IT memperincikan kes penggunaan biasa (penjanaan dokumentasi, ORM, suntikan pergantungan) dan memberi amaran terhadap prestasi overhea

Butiran artikel ini memasang dan menyelesaikan masalah PHP, memberi tumpuan kepada PECL. Ia meliputi langkah pemasangan (mencari, memuat turun/menyusun, membolehkan, memulakan semula pelayan), teknik penyelesaian masalah (memeriksa log, mengesahkan pemasangan,

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini menangani pengoptimuman memori PHP. IT memperincikan teknik seperti menggunakan struktur data yang sesuai, mengelakkan penciptaan objek yang tidak perlu, dan menggunakan algoritma yang cekap. Sumber kebocoran memori biasa (mis., Sambungan yang tidak terkawal, global v

Artikel ini meneroka strategi untuk kekal semasa dalam ekosistem PHP. Ia menekankan penggunaan saluran rasmi, forum komuniti, persidangan, dan sumbangan sumber terbuka. Penulis menyoroti sumber terbaik untuk mempelajari ciri -ciri baru dan a
