Pertanyaan PHP mengembalikan tatasusunan dua dimensi

WBOY
Lepaskan: 2023-05-06 15:57:08
asal
560 orang telah melayarinya

Dalam PHP, kita boleh menggunakan pelbagai kaedah untuk menanyakan elemen dalam tatasusunan, seperti menggunakan fungsi in_array(), menggunakan fungsi array_search(), dsb. Tetapi apabila kita perlu menanyakan elemen dalam tatasusunan dua dimensi, kaedah ini kurang berkesan. Artikel ini akan memperkenalkan cara untuk menanyakan tatasusunan dua dimensi dalam PHP dan mengembalikan elemen yang diperlukan.

Pertama, mari kita lihat tatasusunan dua dimensi yang mudah:

$students = array(
    array('name' => 'Tom', 'age' => 20, 'score' => 90),
    array('name' => 'Jack', 'age' => 22, 'score' => 85),
    array('name' => 'Mary', 'age' => 21, 'score' => 92),
);
Salin selepas log masuk

Andaikan kita ingin menanyakan gred pelajar, kita boleh menggunakan foreach untuk menggelungkan tatasusunan dan menggunakan pernyataan bersyarat untuk Menentukan sama ada pelajar yang kita perlukan, contohnya:

$wantedStudent = 'Jack';

foreach ($students as $student) {
    if ($student['name'] == $wantedStudent) {
        echo $wantedStudent . '的成绩是:' . $student['score'];
        break;
    }
}
Salin selepas log masuk

Kod di atas akan mengeluarkan:

Jack的成绩是:85
Salin selepas log masuk

Walau bagaimanapun, jika terdapat ramai pelajar yang perlu kita tanya, kaedah ini akan menjadi sangat menyusahkan. Oleh itu, kita boleh merangkumnya ke dalam fungsi dan menggunakannya:

function searchArray($array, $key, $value) {
    foreach ($array as $item) {
        if ($item[$key] == $value) {
            return $item;
        }
    }
    return null;
}
Salin selepas log masuk

Fungsi di atas menerima tiga parameter: tatasusunan, nama kunci dan nilai kunci untuk ditanya. Ia akan berulang melalui tatasusunan dan jika ia menemui padanan, ia mengembalikan item itu, jika tidak ia mengembalikan null.

Kita boleh menggunakan fungsi seperti ini:

$wantedStudent = 'Mary';
$student = searchArray($students, 'name', $wantedStudent);

if ($student) {
    echo $wantedStudent . '的成绩是:' . $student['score'];
}
Salin selepas log masuk

Kod di atas adalah bersamaan dengan contoh sebelumnya dan akan mengeluarkan:

Mary的成绩是:92
Salin selepas log masuk

Walau bagaimanapun, apabila tatasusunan adalah sangat besar, Mengulangi keseluruhan tatasusunan akan memberi kesan kepada prestasi. Oleh itu, kita boleh menggunakan fungsi tatasusunan array_filter(), yang mengambil tatasusunan dan fungsi panggil balik dan mengembalikan tatasusunan baharu yang mengandungi elemen tatasusunan yang memenuhi syarat fungsi panggil balik.

Berikut ialah contoh penggunaan array_filter() untuk menanyakan tatasusunan dua dimensi:

function searchArray($array, $key, $value) {
    $filtered = array_filter($array, function($item) use ($key, $value) {
        return $item[$key] == $value;
    });
    return count($filtered) ? array_values($filtered)[0] : null;
}
Salin selepas log masuk

Fungsi di atas mempunyai fungsi yang sama seperti fungsi sebelumnya, tetapi ia menggunakan array_filter() untuk menapis elemen tatasusunan keadaan, dengan itu meningkatkan prestasi.

Setakat ini, kami telah mempelajari cara membuat pertanyaan tatasusunan dua dimensi dalam PHP dan mengembalikan elemen yang diperlukan. Adalah disyorkan untuk menggunakan array_filter() dan fungsi tanpa nama untuk melaksanakan pertanyaan elemen tatasusunan apabila terdapat ratusan atau lebih keping data.

Atas ialah kandungan terperinci Pertanyaan PHP mengembalikan tatasusunan dua dimensi. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!