Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menapis dan menapis elemen dalam tatasusunan PHP

Cara menapis dan menapis elemen dalam tatasusunan PHP

WBOY
WBOYasal
2023-09-05 12:12:221218semak imbas

PHP 数组如何过滤和筛选元素

Cara menapis dan menapis elemen dalam tatasusunan PHP

Dalam PHP, tatasusunan ialah struktur data yang sangat biasa digunakan, dan kami selalunya perlu menapis dan menapis elemen tatasusunan. Artikel ini akan memperkenalkan beberapa kaedah dan fungsi yang biasa digunakan untuk menapis dan menapis elemen tatasusunan PHP.

  1. Gunakan fungsi array_filter() untuk menapis

array_filter() fungsi ialah fungsi terbina dalam PHP, digunakan untuk menapis elemen dalam tatasusunan. Ia menerima tatasusunan sebagai input dan mengembalikan tatasusunan hasil yang ditapis. Kita boleh memutuskan sama ada untuk mengekalkan elemen dalam tatasusunan dengan menghantar fungsi panggil balik tersuai.

Berikut ialah kod sampel:

$numbers = array(1, 2, 3, 4, 5, 6);

// 过滤掉所有奇数
$filtered_numbers = array_filter($numbers, function ($number) {
    return $number % 2 == 0;
});

print_r($filtered_numbers);

Hasil output ialah:

Array
(
    [1] => 2
    [3] => 4
    [5] => 6
)

Dalam contoh di atas, kami menggunakan fungsi tanpa nama sebagai fungsi panggil balik untuk menentukan sama ada nombor genap. Dengan memanggil fungsi array_filter(), kami akan menapis semua nombor ganjil dan hanya menyimpan nombor genap.

  1. Gunakan fungsi array_map() untuk menapis

array_map() fungsi ialah satu lagi fungsi tatasusunan yang biasa digunakan, yang boleh menggunakan fungsi panggil balik pada setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Dengan menetapkan syarat penapis dalam fungsi panggil balik, kami boleh menapis elemen yang kami perlukan dengan mudah.

Berikut ialah kod sampel:

$names = array("Alice", "Bob", "Charlie", "David");

// 筛选出名字长度大于等于5的人
$filtered_names = array_filter($names, function ($name) {
    return strlen($name) >= 5;
});

print_r($filtered_names);

Hasil keluarannya ialah:

Array
(
    [2] => Charlie
    [3] => David
)

Dalam contoh di atas, kami menggunakan fungsi strlen() untuk mendapatkan panjang nama dan menentukan sama ada panjangnya lebih besar daripada atau sama kepada 5 dalam fungsi panggil balik. Dengan memanggil fungsi array_filter(), kami menapis orang yang namanya lebih panjang daripada atau sama dengan 5.

  1. Gunakan gelung foreach untuk menapis dan menapis

Selain menggunakan fungsi terbina dalam, kami juga boleh menggunakan gelung foreach untuk menapis dan menapis elemen tatasusunan secara manual. Pendekatan ini lebih fleksibel dan boleh disesuaikan mengikut keperluan anda.

Berikut ialah kod sampel:

$ages = array(21, 18, 25, 16, 30);

// 过滤掉所有未成年人(年龄小于 18 岁)
$filtered_ages = array();
foreach ($ages as $age) {
    if ($age >= 18) {
        $filtered_ages[] = $age;
    }
}

print_r($filtered_ages);

Hasil keluarannya ialah:

Array
(
    [0] => 21
    [1] => 18
    [2] => 25
    [4] => 30
)

Dalam contoh di atas, kami menggunakan gelung foreach untuk melintasi tatasusunan, dan menggunakan pernyataan if dalam gelung untuk menentukan sama ada umur lebih besar daripada atau sama dengan 18 tahun. Jika syarat dipenuhi, elemen itu ditambahkan pada tatasusunan baharu. Akhirnya, kami mencetak tatasusunan yang ditapis.

Ringkasan:

Artikel ini memperkenalkan beberapa kaedah dan fungsi yang biasa digunakan untuk menapis dan menapis elemen tatasusunan PHP. Sama ada anda menggunakan fungsi terbina dalam array_filter() dan array_map(), atau menapis secara manual menggunakan gelung foreach, anda boleh memilih berdasarkan keperluan khusus anda. Dengan menguasai kaedah ini, kami boleh mengendalikan tatasusunan PHP dengan lebih fleksibel dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Cara menapis dan menapis elemen dalam tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn