Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menapis tatasusunan dua dimensi dengan cekap dalam PHP dengan nilai tertentu?
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'); });
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); });
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 ] ];
Menapis $arr untuk memasukkan hanya entri yang nama sama 'CarEnquiry' terhasil dalam:
$filtered = array_filter($arr, function ($var) { return ($var['name'] == 'CarEnquiry'); });
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 ) )
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!