Rumah > Artikel > pembangunan bahagian belakang > PHP menentukan sama ada ia berada dalam atribut tertentu tatasusunan
Dalam PHP, operasi pada tatasusunan adalah sangat kerap. Tatasusunan ialah struktur data tidak tertib yang boleh menyimpan berbilang nilai yang berkaitan. Apabila kita perlu menentukan sama ada unsur wujud dalam tatasusunan, kita boleh menggunakan fungsi in_array PHP untuk menentukan. Tetapi jika anda perlu menentukan sama ada unsur wujud dalam atribut tertentu tatasusunan, bagaimana untuk mencapainya?
Kita boleh menggunakan gelung for untuk melintasi tatasusunan dan membandingkan sama ada atribut tertentu setiap elemen memenuhi syarat satu demi satu satu. Jika atribut yang memenuhi syarat ditemui elemen, ia bermakna elemen itu wujud dalam atribut tatasusunan ini.
Kod sampel:
function isExistInArray($needle, $array, $key) { for ($i = 0; $i < count($array); $i++) { if ($array[$i][$key] == $needle) { return true; } } return false; } $array = array( array("name" => "apple", "color" => "red"), array("name" => "banana", "color" => "yellow"), array("name" => "orange", "color" => "orange") ); echo isExistInArray("red", $array, "color") ? "存在" : "不存在"; // 存在 echo isExistInArray("green", $array, "color") ? "存在" : "不存在"; // 不存在
Dalam kod di atas, kami mentakrifkan fungsi bernama isExistInArray. Fungsi ini mempunyai tiga parameter: elemen yang akan dijumpai $needle, array yang akan dijumpai $array, dan nama atribut $key. Bandingkan nilai atribut setiap elemen satu demi satu melalui gelung for Jika elemen yang memenuhi syarat ditemui, benar dikembalikan, jika tidak palsu dikembalikan.
Fungsi array_map boleh digunakan untuk melaksanakan fungsi tertentu pada setiap elemen tatasusunan dan mengembalikan tatasusunan yang diproses. Kita boleh menggunakan fungsi ini untuk menapis atribut tertentu tatasusunan untuk menentukan sama ada unsur wujud dalam atribut.
Kod sampel:
function checkValue($value, $needle) { if ($value == $needle) { return true; } return false; } $array = array( array("name" => "apple", "color" => "red"), array("name" => "banana", "color" => "yellow"), array("name" => "orange", "color" => "orange") ); $result = array_map(function($item) use ($needle) { return checkValue($item["color"], $needle); }, $array); if (in_array(true, $result)) { echo "存在"; } else { echo "不存在"; }
Dalam kod di atas, kami mentakrifkan fungsi bernama checkValue, yang digunakan untuk membandingkan sama ada nilai atribut tertentu tatasusunan adalah sama dengan nilai yang perlu dijumpai. Seterusnya, kami menggunakan fungsi array_map untuk melaksanakan fungsi checkValue pada setiap elemen tatasusunan dan mengembalikan tatasusunan yang diproses. Akhir sekali, kami menggunakan fungsi in_array untuk menentukan sama ada terdapat nilai sebenar dalam tatasusunan yang diproses Jika ia wujud, ini bermakna elemen itu wujud dalam atribut tatasusunan ini.
Ringkasnya, untuk menentukan sama ada unsur wujud dalam atribut tertentu tatasusunan, anda perlu melintasi tatasusunan atau menggunakan fungsi peta_tatasusunan untuk menapis tatasusunan. Kedua-dua kaedah di atas masing-masing mempunyai kelebihan dan kekurangan masing-masing, dan pembangun boleh memilih kaedah yang sesuai mengikut keperluan sebenar mereka.
Atas ialah kandungan terperinci PHP menentukan sama ada ia berada dalam atribut tertentu tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!