Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyemak sama ada nilai berada dalam tatasusunan 2D menggunakan PHP

Bagaimana untuk menyemak sama ada nilai berada dalam tatasusunan 2D menggunakan PHP

PHPz
PHPzasal
2023-04-14 20:03:111099semak imbas

Dalam PHP, tatasusunan dua dimensi ialah struktur data yang sangat biasa. Dalam pembangunan sebenar, kadangkala kita perlu menentukan sama ada nilai tertentu berada dalam tatasusunan dua dimensi. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menyemak sama ada nilai berada dalam tatasusunan dua dimensi.

  1. Kaedah 1: Gunakan gelung foreach

Gunakan gelung foreach untuk melintasi tatasusunan dua dimensi, bandingkan setiap nilai satu demi satu dan kembalikan benar jika nilai wujud dalam tatasusunan dua dimensi, jika tidak, kembalikan palsu.

Kod sampel adalah seperti berikut:

function in_array_2d($value, $array) {
    foreach ($array as $item) {
        if (in_array($value, $item)) {
            return true;
        }
    }
    return false;
}

Pelaksanaan kod di atas adalah agak mudah Ia menggunakan fungsi in_array terbina dalam PHP untuk menentukan sama ada nilai itu dalam tatasusunan. dan menggunakan gelung foreach untuk melintasi tatasusunan dua dimensi.

juga sangat mudah untuk digunakan, cuma masukkan nilai yang akan dinilai dan tatasusunan dua dimensi, contohnya:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

Dalam contoh ini, $array ialah dua- tatasusunan dimensi, $value ialah nilai yang perlu dinilai, dan hasil pelaksanaan ialah "nilai wujud dalam tatasusunan".

  1. Kaedah 2: Gunakan fungsi array_walk_recursive

Gunakan fungsi array_walk_recursive untuk melintasi semua elemen dalam tatasusunan dua dimensi Jika nilai itu wujud, kembalikan benar, jika tidak Kembali palsu.

Kod sampel adalah seperti berikut:

function in_array_2d($value, $array) {
    $exist = false;
    array_walk_recursive($array, function($item) use (&$exist, $value) {
        if ($item == $value) {
            $exist = true;
        }
    });
    return $exist;
}

Kod di atas menggunakan fungsi array_walk_recursive untuk melintasi tatasusunan dua dimensi, dan menggunakan kata kunci penggunaan untuk menghantar $wujud dan $value ke dalam fungsi. $exist ialah Pembolehubah bendera sedia ada, $value ialah nilai yang perlu dinilai.

Begitu juga, kaedah penggunaannya juga sangat mudah, cuma masukkan nilai yang akan dinilai dan tatasusunan dua dimensi, contohnya:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

Dalam contoh ini, $array ialah tatasusunan dua dimensi, $value ialah nilai yang perlu dinilai, dan hasil pelaksanaan ialah "nilai wujud dalam tatasusunan".

Ringkasan

Kedua-dua kaedah di atas boleh digunakan untuk menentukan sama ada sesuatu nilai berada dalam tatasusunan dua dimensi. Apabila menggunakannya, anda boleh memilih kaedah yang berbeza mengikut keperluan anda sendiri. Dari segi prestasi, kerumitan masa kedua-dua kaedah ialah O(n^2). Jika tatasusunan dua dimensi agak besar, adalah disyorkan untuk memilih algoritma lain yang lebih cekap.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nilai berada dalam tatasusunan 2D menggunakan PHP. 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