Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencari nilai khusus dalam tatasusunan PHP

Bagaimana untuk mencari nilai khusus dalam tatasusunan PHP

WBOY
WBOYasal
2023-07-08 09:37:371830semak imbas

Cara mencari nilai tertentu dalam tatasusunan PHP

Dalam pengaturcaraan PHP, selalunya perlu mencari nilai tertentu dalam tatasusunan untuk melaksanakan pelbagai fungsi. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk membantu pembaca memahami cara mencari nilai tertentu dengan cekap dalam tatasusunan PHP.

1. Kaedah carian linear
Kaedah carian linear ialah kaedah carian paling asas dan sesuai untuk tatasusunan yang tidak teratur. Ia membandingkan elemen tatasusunan satu demi satu dan mengembalikan kedudukan nilai sasaran selepas menemuinya.

function linearSearch($arr, $target) {
    $n = count($arr);
    for ($i = 0; $i < $n; $i++) {
        if ($arr[$i] == $target) {
            return $i;
        }
    }
    return -1; // 如果未找到目标值,返回-1
}

$nums = array(2, 4, 6, 8, 10);
$target = 8;
$result = linearSearch($nums, $target);
if ($result == -1) {
    echo "目标值不在数组中";
} else {
    echo "目标值在数组中的位置为:".$result;
}

2. Kaedah carian binari
Kaedah carian binari sesuai untuk tatasusunan tersusun dengan cepat mencari nilai sasaran dengan mengecilkan julat carian secara berterusan. Sebelum melaksanakan kaedah carian binari, anda perlu mengisih tatasusunan terlebih dahulu.

function binarySearch($arr, $target) {
    $left = 0;
    $right = count($arr) - 1;
    while ($left <= $right) {
        $mid = floor(($left + $right) / 2);
        if ($arr[$mid] == $target) {
            return $mid;
        }
        if ($arr[$mid] < $target) {
            $left = $mid + 1;
        } else {
            $right = $mid - 1;
        }
    }
    return -1; // 如果未找到目标值,返回-1
}

$nums = array(1, 3, 5, 7, 9);
$target = 5;
sort($nums); // 排序数组
$result = binarySearch($nums, $target);
if ($result == -1) {
    echo "目标值不在数组中";
} else {
    echo "目标值在数组中的位置为:".$result;
}

3 Gunakan fungsi array_search
PHP menyediakan fungsi array_search untuk mencari kedudukan nilai tertentu dalam tatasusunan, tidak kira sama ada tatasusunan itu diisih atau tidak. Fungsi ini mengembalikan nama kunci padanan pertama, atau palsu jika tidak ditemui.

$nums = array(2, 4, 6, 8, 10);
$target = 8;
$result = array_search($target, $nums);
if ($result === false) {
    echo "目标值不在数组中";
} else {
    echo "目标值在数组中的位置为:".$result;
}

4 Gunakan fungsi in_array
Jika anda hanya perlu menentukan sama ada nilai tertentu wujud dalam array, anda boleh menggunakan fungsi in_array. Fungsi ini mengembalikan benar atau salah.

$nums = array(2, 4, 6, 8, 10);
$target = 8;
if (in_array($target, $nums)) {
    echo "目标值在数组中";
} else {
    echo "目标值不在数组中";
}

Ringkasnya, kami telah memperkenalkan empat cara biasa untuk mencari nilai tertentu dalam tatasusunan PHP. Memilih kaedah yang sesuai mengikut keperluan sebenar boleh meningkatkan kecekapan carian dan prestasi program. Pada masa yang sama, contoh dalam kod juga membantu pembaca lebih memahami penggunaan kaedah ini. Saya harap artikel ini akan membantu pembaca dalam operasi carian tatasusunan dalam pengaturcaraan PHP.

Atas ialah kandungan terperinci Bagaimana untuk mencari nilai khusus dalam tatasusunan 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