Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada aksara wujud dalam tatasusunan dalam php

Bagaimana untuk menentukan sama ada aksara wujud dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 15:01:46430semak imbas

Sebagai bahasa skrip sebelah pelayan, PHP melaksanakan pelbagai fungsi seperti memproses borang, mengurus fail dan menjana halaman dinamik. Di antara fungsi ini, pemprosesan aksara adalah sangat biasa. Artikel ini terutamanya memperkenalkan cara untuk menentukan sama ada aksara wujud dalam tatasusunan dalam PHP dan cara meningkatkan kecekapan dalam pemprosesan data berskala besar.

  1. Pengetahuan asas PHP

Dalam PHP, tatasusunan ialah pembolehubah yang boleh menyimpan berbilang nilai ini boleh berupa nilai angka, rentetan, integer dan nombor titik terapung dll. Dalam tatasusunan bersekutu, setiap elemen diindeks oleh kunci unik. Jika anda ingin menentukan sama ada aksara wujud dalam tatasusunan dalam PHP, kita perlu menggunakan fungsi in_array(). Fungsi

in_array() menerima dua parameter, parameter pertama ialah nilai untuk ditemui, dan parameter kedua ialah tatasusunan untuk ditemui. Apabila fungsi mengembalikan benar, ini bermakna nilai yang anda cari wujud dalam tatasusunan, dan apabila ia mengembalikan palsu, ia bermakna ia tidak wujud.

Kod sampel:

$my_array = array("php", "python", "java", "ruby");
if (in_array("php", $my_array)) {
    echo "数组中存在php";
} else {
    echo "数组中不存在php";
}

Hasil jalankan:

数组中存在php
  1. Ada masalah

In_array() function is a Ia merupakan fungsi yang mudah untuk menentukan sama ada unsur yang ditentukan wujud dalam tatasusunan, tetapi jika anda perlu mencari dalam tatasusunan yang besar, ia mungkin memakan masa yang sangat lama. Untuk melakukan carian liputan, kerumitan masa algoritma menjadi sangat tinggi.

Untuk meningkatkan kecekapan carian, kami perlu menggunakan algoritma carian yang lebih cekap dalam pemprosesan data berskala besar. Yang biasa digunakan termasuk carian hash dan carian binari.

  1. Carian cincang

Carian cincang mengurangkan kerumitan masa carian dengan menukar nilai kunci tatasusunan kepada indeks integer menggunakan fungsi cincang. Fungsi cincang boleh menentukan lokasi tatasusunan berdimensi besar dengan cepat, mengurangkan bilangan carian yang tidak perlu. Oleh itu, algoritma carian hash mempunyai kelebihan kerumitan masa yang rendah.

Berikut ialah algoritma carian cincang yang biasa digunakan.

/**
 * 哈希查找
 * @param array $arr
 * @param string $item
 * @return bool
 */
function search(array $arr, string $item): bool
{
    $hashmap = [];
    foreach ($arr as $value) {
        $hashmap[$value] = true;
    }
    return isset($hashmap[$item]);
}
  1. Carian binari

Algoritma carian binari ialah algoritma carian yang cekap. Ia bergantung pada syarat tatasusunan telah diisih, dan dengan cepat mengecualikan sebahagian besar data, meningkatkan kecekapan carian dalam pemprosesan data berskala besar. Carian binari adalah lebih cekap daripada carian cincang apabila memproses data berskala besar.

Berikut ialah algoritma carian binari yang biasa digunakan.

/**
 * 二分查找
 * @param array $arr
 * @param int $n
 * @param string $value
 * @return mixed
 */
function binarySearch(array $arr, int $n, string $value)
{
    $low = 0;
    $high = $n - 1;
    while ($low <= $high) {
        $mid = intval(($low + $high) / 2);
        if ($arr[$mid] == $value) {
            return true;
        } elseif ($arr[$mid] < $value) {
            $low = $mid + 1;
        } else {
            $high = $mid - 1;
        }
    }
    return false;
}
  1. Ringkasan

Artikel ini memperincikan cara untuk menentukan sama ada aksara wujud dalam tatasusunan dalam PHP dan cara meningkatkan kecekapan dalam pemprosesan data berskala besar. Pilih sahaja algoritma yang sesuai berdasarkan situasi sebenar. Sama ada carian cincang atau carian binari, ia boleh membantu kami menangani masalah carian data berskala besar dan meningkatkan kecekapan pengendalian program.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada aksara wujud dalam tatasusunan dalam 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