Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencari berbilang nilai dalam tatasusunan dalam PHP dan mengembalikan nama kunci yang sepadan

Bagaimana untuk mencari berbilang nilai dalam tatasusunan dalam PHP dan mengembalikan nama kunci yang sepadan

王林
王林asal
2023-07-08 08:48:091094semak imbas

Bagaimana untuk mencari berbilang nilai dalam tatasusunan dan mengembalikan nama kunci yang sepadan dalam PHP

Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu mencari berbilang nilai dalam tatasusunan dan mencari nama kunci nilai yang sepadan . Artikel ini akan memperkenalkan kaedah untuk mencapai fungsi ini dan menyediakan contoh kod yang sepadan.

Pertama, mari kita lihat struktur tatasusunan yang kita cari. Katakan kita mempunyai tatasusunan bersekutu yang menyimpan beberapa maklumat pengguna, seperti nama pengguna, umur dan jantina. Contohnya seperti berikut:

$user_info = array(
    'john' => array(
        'age' => 25,
        'gender' => 'male'
    ),
    'amy' => array(
        'age' => 32,
        'gender' => 'female'
    ),
    'peter' => array(
        'age' => 28,
        'gender' => 'male'
    ),
    'susan' => array(
        'age' => 30,
        'gender' => 'female'
    )
);

Sekarang, andaikan kita perlu mencari pengguna yang berumur 32 tahun dan yang jantinanya adalah perempuan Kami ingin mendapatkan nama kunci pengguna, iaitu 'amy'. Berikut ialah contoh kod untuk melaksanakan fungsi ini:

function searchUser($array, $conditions) {
    foreach ($array as $key => $value) {
        $match = 0;
        foreach ($conditions as $condition_key => $condition_value) {
            if ($value[$condition_key] == $condition_value) {
                $match++;
            }
        }
        if ($match == count($conditions)) {
            return $key;
        }
    }
    return null;
}

$conditions = array(
    'age' => 32,
    'gender' => 'female'
);

$result = searchUser($user_info, $conditions);

if ($result) {
    echo "找到匹配的用户,键名为:" . $result;
} else {
    echo "未找到匹配的用户";
}

Dalam kod di atas, kami mentakrifkan fungsi bernama searchUser, yang menerima dua parameter: tatasusunan yang akan dicari dan keadaan carian. searchUser的函数,该函数接受两个参数:要查找的数组和查找条件。

在函数内部,我们使用了两层嵌套的循环。外层循环遍历数组的每个元素,内层循环遍历查找条件数组中的每个条件。

在内层循环中,我们比较数组中对应键的值是否和当前查找条件相等。如果相等,我们增加一个计数器$match的值。如果$match的值等于查找条件数组的长度,说明所有条件都匹配,我们返回当前循环的键名。

如果没有找到匹配的用户,我们最终返回null

在主程序中,我们定义了一个查找条件数组$conditions,然后调用searchUser

Di dalam fungsi, kami menggunakan dua tahap gelung bersarang. Gelung luar merentasi setiap elemen tatasusunan, dan gelung dalam melintasi setiap keadaan dalam tatasusunan keadaan carian.

Dalam gelung dalam, kami membandingkan sama ada nilai kunci yang sepadan dalam tatasusunan adalah sama dengan keadaan carian semasa. Jika ia sama, kami menambah pembilang $match. Jika nilai $match adalah sama dengan panjang tatasusunan keadaan carian, ini bermakna semua syarat dipadankan dan kami mengembalikan nama kunci gelung semasa.


Jika tiada pengguna yang sepadan ditemui, kami akhirnya mengembalikan null.

🎜Dalam program utama, kami mentakrifkan tatasusunan keadaan carian $conditions, dan kemudian memanggil fungsi searchUser untuk mencari pengguna yang sepadan. Akhir sekali, berdasarkan hasil yang dikembalikan, kami mengeluarkan maklumat segera yang sepadan. 🎜🎜Dengan contoh kod di atas, kita boleh melaksanakan fungsi mencari berbilang nilai dalam tatasusunan dan mengembalikan nama kunci yang sepadan. 🎜🎜Ringkasan: 🎜Dalam pembangunan PHP, kadangkala kita perlu mencari berbilang nilai dalam tatasusunan dan mengembalikan nama kunci yang sepadan. Dengan menggunakan gelung berganda dan syarat pertimbangan yang sesuai, kita boleh mencapai fungsi ini. Contoh kod di atas menyediakan kaedah pelaksanaan untuk rujukan dan kegunaan anda. Saya harap artikel ini akan membantu semua orang dalam carian tatasusunan PHP. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mencari berbilang nilai dalam tatasusunan dalam PHP dan mengembalikan nama kunci yang sepadan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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