Rumah > Artikel > pembangunan bahagian belakang > Adakah mungkin untuk menentukan tatasusunan yang dikembalikan oleh php?
Adakah mungkin untuk menentukan tatasusunan yang dikembalikan oleh php?
Untuk pemula, tatasusunan PHP ialah struktur data yang sangat penting. Semasa pembangunan, kita selalunya perlu mengembalikan tatasusunan, tetapi dalam beberapa kes, kita hanya memerlukan item tertentu dalam tatasusunan ini. Jadi, adakah PHP mempunyai kaedah sepadan yang membolehkan kami memulangkan hanya item yang ditentukan dalam tatasusunan?
Jawapannya ya. Artikel ini akan memperkenalkan dua fungsi PHP: array_filter() dan array_map(), yang kedua-duanya boleh mengembalikan item yang ditentukan dalam tatasusunan.
fungsi array_filter()
fungsi array_filter() ialah fungsi terbina dalam PHP Ia digunakan untuk menapis elemen dalam tatasusunan yang tidak memenuhi syarat tertentu dan mengembalikan elemen yang memenuhi syarat. Kita boleh menggunakan hujah fungsi panggil balik fungsi ini untuk mengembalikan tatasusunan dengan nilai tatasusunan yang kita mahukan.
Berikut ialah contoh:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $result = array_filter($arr, function($key) { if ($key == 'name' || $key == 'age') { return true; } return false; }, ARRAY_FILTER_USE_KEY); print_r($result); ?>
Dalam contoh ini, kami menggunakan fungsi array_filter(), yang hanya akan mengembalikan nama dan item umur dalam tatasusunan. Parameter kedua fungsi ialah fungsi panggil balik yang menerima nama kunci dalam tatasusunan sebagai parameter dan mengembalikan nilai Boolean. Jika benar, elemen ini akan disertakan jika salah, elemen ini tidak akan disertakan. Parameter ARRAY_FILTER_USE_KEY menunjukkan bahawa kami menghantar nama kunci, bukan nilai kunci.
Jika anda ingin mengembalikan berbilang pasangan nilai kunci yang ditapis, anda boleh menggunakan kod berikut:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $result = array_filter($arr, function($value, $key) { if ($key == 'name' || $key == 'age') { return true; } return false; }, ARRAY_FILTER_USE_BOTH); print_r($result); ?>
Contoh ini sangat serupa dengan yang di atas, tetapi ia melepasi kedua-dua kunci nama dan nilai kunci Pemberian fungsi panggil balik membolehkan kami membandingkan nama kunci dan nilai kunci untuk mengembalikan berbilang pasangan nilai kunci. Fungsi
array_map()
array_map() juga merupakan fungsi terbina dalam PHP Ia menerima satu atau lebih tatasusunan dan mengembalikan tatasusunan baharu, dengan setiap elemen ialah setiap tatasusunan asal. Hasil pemprosesan elemen yang sepadan dalam . Kita boleh menggunakan fungsi ini untuk mengembalikan tatasusunan dengan kunci yang kita inginkan dan bukannya keseluruhan tatasusunan.
Berikut ialah contoh:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $filtered_keys = ['name', 'age']; $result = array_map(function($key) use ($arr) { return $arr[$key]; }, $filtered_keys); print_r($result); ?>
Dalam contoh ini, kami menggunakan fungsi array_map() untuk mengembalikan tatasusunan yang mengandungi hanya nama dan umur. Parameter kedua fungsi ialah tatasusunan yang mengandungi kunci yang diperlukan. Kami menggunakan fungsi panggil balik array_map() untuk mendapatkan nilai setiap kunci dan lulus tatasusunan asal menggunakan kata kunci penggunaan.
Adalah penting untuk ambil perhatian bahawa jika kita tidak pasti item yang akan dikembalikan, atau bilangan item boleh berubah dari semasa ke semasa, kita harus menggunakan fungsi array_filter(). Dan jika kita sudah tahu item yang hendak dikembalikan, atau bilangan item diketahui, kita boleh menggunakan fungsi array_map().
Ringkasan
Dalam PHP, kita boleh menggunakan fungsi array_filter() dan array_map() untuk mengembalikan item yang ditentukan dalam tatasusunan. Mereka semua boleh menapis atau membina semula tatasusunan melalui fungsi panggil balik untuk mengembalikan hasil yang kita inginkan. Kita boleh memilih fungsi yang hendak digunakan, bergantung pada item yang perlu kita pulangkan dan sama ada bilangan item itu tetap.
Atas ialah kandungan terperinci Adakah mungkin untuk menentukan tatasusunan yang dikembalikan oleh php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!