Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menapis Tatasusunan Bersekutu dalam PHP Berdasarkan Kekunci daripada Tatasusunan Berindeks?
Menapis Tatasusunan Bersekutu Berdasarkan Kekunci dalam Tatasusunan Berindeks
Dalam PHP, array_filter() menyediakan kaedah yang mudah untuk menapis tatasusunan bersekutu berdasarkan pada nilai mereka. Walau bagaimanapun, fungsi ini hanya mempertimbangkan nilai, meninggalkan pengaturcara mencari cara untuk menapis kunci berdasarkan set nilai yang dibenarkan. Soalan ini menangani cabaran ini.
Memandangkan tatasusunan bersekutu ($my_array) dan tatasusunan diindeks kekunci yang dibenarkan ($dibenarkan), tugasnya adalah untuk mengalih keluar semua kunci daripada $my_array yang tidak terdapat dalam $allowed. Output yang diingini ialah $my_array yang mengandungi hanya pasangan nilai kunci di mana kunci ditemui dalam $allowed.
Penyelesaian:
Jawapannya mencadangkan penggunaan dua manipulasi tatasusunan fungsi:
Menggabungkan kedua-dua fungsi ini, anda boleh menapis tatasusunan bersekutu sebagai berikut:
$filtered_array = array_intersect_key($my_array, array_flip($allowed));
Di sini, array_flip($allowed) mencipta tatasusunan baharu dengan nilai daripada $allowed menjadi kunci dan kunci menjadi nilai. array_intersect_key($my_array, ...) kemudian membandingkan $my_array dengan tatasusunan terbalik, mengembalikan tatasusunan dengan hanya kekunci yang dibenarkan sebagai kunci dan nilai yang berkaitan dengannya.
Contoh:
Menggunakan contoh yang disediakan:
$my_array = array("foo" => 1, "hello" => "world"); $allowed = array("foo", "bar");
$filtered_array yang terhasil ialah:
array("foo" => 1);
Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Bersekutu dalam PHP Berdasarkan Kekunci daripada Tatasusunan Berindeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!