Bagaimanakah saya boleh menapis tatasusunan dua dimensi dengan cekap dalam PHP dengan nilai tertentu?

Patricia Arquette
Lepaskan: 2024-11-26 02:08:11
asal
281 orang telah melayarinya

How can I efficiently filter a two-dimensional array in PHP by a specific value?

Menapis Tatasusunan Dua Dimensi mengikut Nilai dalam PHP dengan cekap

Dalam pengaturcaraan PHP, menapis tatasusunan dua dimensi dengan nilai tertentu dengan cekap boleh dicapai menggunakan fungsi array_filter versatile dalam kombinasi dengan a panggil balik.

Penapisan Mudah dengan Nilai Tunggal

Untuk menapis tatasusunan mengikut nilai tertentu dalam kunci, kita boleh menggunakan sintaks berikut:

$new = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
Salin selepas log masuk

Di sini, $arr ialah tatasusunan input dan fungsi panggil balik menyemak sama ada kunci nama dalam setiap sub-tatasusunan sepadan dengan nilai sasaran. Tatasusunan $new yang terhasil hanya mengandungi sub-tatasusunan di mana nama sama dengan 'CarEnquiry'.

Penapisan Boleh Tukar untuk Berbilang Nilai

Jika nilai sasaran mungkin berbeza, kita boleh tingkatkan fungsi panggil balik untuk mengendalikan penapisan boleh tukar ganti:

$filterBy = 'CarEnquiry'; // or Finance etc.

$new = array_filter($arr, function ($var) use ($filterBy) {
    return ($var['name'] == $filterBy);
});
Salin selepas log masuk

Gunakan kata kunci dalam fungsi panggil balik membolehkan kami mengakses pembolehubah $filterBy, yang boleh diubah suai untuk menentukan nilai sasaran yang berbeza, membenarkan penapisan dinamik.

Contoh Penggunaan

Pertimbangkan tatasusunan berikut sebagai contoh :

$arr = [
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'NEW',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'CALL1',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Finance',
        'status' => 'CALL2',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Partex',
        'status' => 'CALL3',
        'appointment' => 0
    ]
];
Salin selepas log masuk

Menapis $arr untuk memasukkan hanya entri yang nama sama 'CarEnquiry' terhasil dalam:

$filtered = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
Salin selepas log masuk

Asusunan $filtered yang terhasil akan mengandungi:

Array
(
    [0] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => NEW
            [appointment] => 0
        )

    [1] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => CALL1
            [appointment] => 0
        )

    )
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh menapis tatasusunan dua dimensi dengan cekap dalam PHP dengan nilai tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan