Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menapis Kekunci Tatasusunan Bersekutu Berdasarkan Nilai Tatasusunan Terindeks dalam PHP?

Bagaimanakah Saya Boleh Menapis Kekunci Tatasusunan Bersekutu Berdasarkan Nilai Tatasusunan Terindeks dalam PHP?

DDD
Lepaskan: 2024-12-13 11:52:10
asal
756 orang telah melayarinya

How Can I Filter Associative Array Keys Based on Indexed Array Values in PHP?

Tapis Kekunci Tatasusunan Bersekutu Berdasarkan Nilai Tatasusunan Terindeks

Ramai pengaturcara menghadapi cabaran menapis kekunci secara terpilih daripada tatasusunan bersekutu berdasarkan tertentu nilai yang disimpan dalam tatasusunan diindeks. Dalam PHP, fungsi panggil balik array_filter() hanya menyediakan akses kepada nilai tatasusunan, meninggalkan fungsi pemadanan kunci.

Pertimbangkan senario berikut di mana $my_array mengandungi pasangan nilai kunci:

$my_array = ["foo" => 1, "hello" => "world"];
Salin selepas log masuk

Dan $allowed ialah tatasusunan diindeks mudah dengan kekunci yang dibenarkan:

$allowed = ["foo", "bar"];
Salin selepas log masuk

The matlamatnya adalah untuk mengubah suai $my_array supaya ia hanya mengandungi kunci yang turut terdapat dalam $allowed. Output yang dikehendaki ialah:

$my_array = ["foo" => 1];
Salin selepas log masuk

Untuk mencapai ini, kita boleh memanfaatkan fungsi array_intersect_key() dan array_flip():

var_dump(array_intersect_key($my_array, array_flip($allowed)));
Salin selepas log masuk

Penjelasan:

  • **array_flip($allowed)**: Membalikkan kekunci dan nilai $allowed, menukarnya kepada tatasusunan bersekutu di mana kunci asal menjadi nilai dan sebaliknya. Ini membolehkan kami membandingkan kekunci daripada $my_array kepada nilai dalam tatasusunan terbalik.
  • array_intersect_key($my_array, $reversed): Bersilang kekunci $my_array dengan tatasusunan $allowed terbalik. Ini hanya mengekalkan kunci daripada $my_array yang hadir sebagai nilai dalam tatasusunan terbalik, menapis kekunci yang tidak diingini dengan berkesan.

Dengan menggabungkan fungsi ini, kita boleh mengalih keluar kekunci secara terpilih daripada tatasusunan bersekutu berdasarkan nilai dalam tatasusunan diindeks tanpa mengulangi kekunci secara manual dan membandingkannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menapis Kekunci Tatasusunan Bersekutu Berdasarkan Nilai Tatasusunan Terindeks dalam PHP?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan