cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memadam elemen tertentu daripada tatasusunan

<p>Bagaimanakah cara saya mengalih keluar elemen daripada tatasusunan apabila saya tahu nilainya? Contohnya: </p> <p>Saya mempunyai tatasusunan: </p> <pre class="brush:php;toolbar:false;">$array = array('epal', 'oren', 'strawberi', 'blueberry', 'kiwi');</pre> <p>Input pengguna<kod>strawberi</kod></p> <p><kod>strawberi</kod> telah dialih keluar daripada <kod>$array</kod>. </p> <p>Penjelasan lengkapnya adalah seperti berikut:</p> <p>Saya mempunyai pangkalan data yang menyimpan senarai item yang dipisahkan koma. Kod menarik senarai berdasarkan lokasi yang dipilih oleh pengguna. Jadi, jika mereka memilih strawberi, kod itu mengeluarkan setiap entri yang mengandungi strawberi dan menggunakan split() untuk menukarnya kepada tatasusunan. Saya mahu mengalih keluar item yang dipilih pengguna daripada tatasusunan, contohnya strawberi dalam contoh ini. </p>
P粉141455512P粉141455512509 hari yang lalu554

membalas semua(2)saya akan balas

  • P粉511757848

    P粉5117578482023-08-21 13:42:03

    Gunakan array_diff() untuk penyelesaian satu baris:

    $array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi', 'strawberry'); //再加一个'strawberry'以证明它可以删除字符串的多个实例
    $array_without_strawberries = array_diff($array, array('strawberry'));
    print_r($array_without_strawberries);

    ...Tiada fungsi tambahan atau gelung foreach diperlukan.

    balas
    0
  • P粉254077747

    P粉2540777472023-08-21 12:54:10

    Gunakan fungsi array_search函数获取键,并使用unset untuk memadamnya jika ditemui:

    if (($key = array_search('strawberry', $array)) !== false) {
        unset($array[$key]);
    }
    Fungsi

    array_search mengembalikan false apabila item tidak ditemui (mengembalikan null sebelum PHP 4.2.0).

    Jika mungkin terdapat beberapa item dengan nilai yang sama, anda boleh menggunakan fungsi array_keys untuk mendapatkan kunci semua item:

    foreach (array_keys($array, 'strawberry') as $key) {
        unset($array[$key]);
    }

    balas
    0
  • Batalbalas