Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada nilai yang ditentukan dimasukkan dalam tatasusunan dalam php

Bagaimana untuk menentukan sama ada nilai yang ditentukan dimasukkan dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 14:24:19489semak imbas

Dalam pengaturcaraan PHP, menentukan sama ada elemen berada dalam tatasusunan ialah operasi biasa, yang boleh dilaksanakan menggunakan fungsi in_array. Walau bagaimanapun, sesetengah pembangun akan menggunakan sintaks PHP asli, iaitu, gunakan "==" atau "===" untuk menilai Dalam kes ini, hasil yang berbeza mungkin diperoleh. Oleh itu, artikel ini akan membincangkan isu berkaitan sama ada PHP disertakan dalam tatasusunan.

1. Penggunaan fungsi in_array

in_array ialah fungsi yang disediakan oleh PHP untuk menentukan sama ada sesuatu elemen berada dalam array adalah seperti berikut:

bool in_array (. campuran $needle , array $haystack [, bool $strict = FALSE ] )

Fungsi ini menerima tiga parameter:

  1. jarum: elemen yang akan ditemui
  2. timbunan jerami: dapat dijumpai Susunan
  3. ketat: sama ada hendak menggunakan mod ketat. Jika benar, tentukan sama ada elemen adalah daripada jenis yang sama dengan elemen tatasusunan (kedua-dua jenis dan nilai sepadan).

Sebagai contoh, dalam kod berikut, kami menggunakan in_array untuk menentukan sama ada "epal" berada dalam tatasusunan $fruits:

$fruits = array('banana', 'apple', 'orange');
if (in_array('apple', $fruits)) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

Kod di atas akan mengeluarkan "Ya, epal berada dalam susunan buah-buahan" kerana "epal" sememangnya dalam susunan $fruits.

2. Sintaks PHP asli untuk menentukan sama ada elemen berada dalam tatasusunan

Sesetengah pembangun boleh menggunakan sintaks PHP asli untuk menentukan sama ada elemen berada dalam tatasusunan, seperti menggunakan "==" atau "===" untuk membandingkan. Contohnya:

$fruits = array('banana', 'apple', 'orange');
if ('apple' == $fruits[1]) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

Kod ini bersamaan dengan kod yang menggunakan in_array, kedua-duanya akan mengeluarkan "Ya, epal ada dalam susunan buah-buahan". Kerana "epal" mempunyai nilai yang sama dengan $fruits[1].

Walau bagaimanapun, menggunakan sintaks PHP asli untuk menentukan sama ada elemen berada dalam tatasusunan mungkin menghasilkan hasil yang berbeza, terutamanya apabila menggunakan "===".

Sebagai contoh, dalam kod berikut, kami membandingkan kedua-dua integer 1 dan rentetan '1' dengan elemen tatasusunan:

$test_array = array('1', '2', '3');
var_dump(1 == $test_array[0]);    // true
var_dump('1' == $test_array[0]);  // true,因为'1'会被转换成整型1
var_dump(1 === $test_array[0]);   // false,类型不匹配
var_dump('1' === $test_array[0]); // false,类型不匹配

Dalam kod di atas, gunakan "== "Apabila membandingkan, kedua-dua jenis integer 1 dan rentetan '1' akan ditukar kepada jenis integer 1, jadi ia adalah sama dengan elemen tatasusunan '1'.

Walau bagaimanapun, apabila menggunakan "===" sebagai perbandingan, kerana jenis tidak sepadan (satu ialah integer dan satu lagi rentetan), hasil perbandingan adalah palsu.

3 Kaedah lain untuk menentukan sama ada elemen berada dalam tatasusunan

Selain menggunakan fungsi in_array dan sintaks PHP asli, terdapat kaedah lain untuk menentukan sama ada elemen berada dalam tatasusunan .

  1. fungsi array_search

fungsi array_search boleh mencari elemen dalam tatasusunan dan mengembalikan nama kunci yang sepadan jika ia tidak ditemui, ia akan mengembalikan palsu. Contohnya:

$fruits = array('banana', 'apple', 'orange');
$key = array_search('apple', $fruits);
if ($key !== false) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

Dalam kod di atas, jika 'epal' ditemui, nama kunci yang sepadan 1 dikembalikan, jadi "Ya, epal dalam tatasusunan buah-buahan" adalah output.

  1. fungsi in_array digabungkan dengan fungsi array_flip

Menggunakan fungsi in_array digabungkan dengan fungsi array_flip dengan cepat boleh menentukan sama ada elemen berada dalam tatasusunan, tetapi perlu diperhatikan bahawa nilai dalam tatasusunan mestilah unik.

$fruits = array('banana', 'apple', 'orange');
$flip_fruits = array_flip($fruits); // 交换键和值
if (isset($flip_fruits['apple'])) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

Dalam kod di atas, kami menukar kunci dan nilai tatasusunan $fruits untuk mendapatkan tatasusunan $flip_fruits yang baharu. Kemudian, kami menggunakan fungsi isset untuk menentukan sama ada 'epal' ialah kunci tatasusunan $flip_fruits Jika ya, maka 'epal' berada dalam tatasusunan $fruits.

4. Ringkasan

Dalam pengaturcaraan PHP, menentukan sama ada elemen berada dalam tatasusunan ialah operasi biasa, yang boleh dilaksanakan menggunakan fungsi in_array. Fungsi ini juga boleh dilaksanakan menggunakan sintaks PHP asli, tetapi anda perlu memberi perhatian kepada isu padanan jenis. Selain itu, kaedah lain juga boleh digunakan, seperti fungsi array_search dan fungsi in_array digabungkan dengan fungsi array_flip.

Akhir sekali, saya harap artikel ini dapat membantu pembangun PHP apabila berurusan dengan tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada nilai yang ditentukan dimasukkan 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