Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar elemen dari tatasusunan dalam php

Bagaimana untuk mengalih keluar elemen dari tatasusunan dalam php

PHPz
PHPzasal
2023-04-27 09:00:54604semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk membangunkan aplikasi web. Dalam PHP, tatasusunan ialah struktur data penting yang boleh menyimpan berbilang nilai dan mudah untuk menambah, memadam, mengubah suai, dsb. Walau bagaimanapun, kadangkala kita perlu mengalih keluar elemen tertentu daripada tatasusunan Artikel ini memperkenalkan beberapa kaedah biasa.

Kaedah 1: Gunakan fungsi unset()

Fungsi unset() digunakan untuk memadamkan elemen dalam pembolehubah atau tatasusunan yang ditentukan. Kita boleh menggunakan fungsi unset() untuk memadamkan elemen dalam tatasusunan Kodnya adalah seperti berikut:

$array = array('a', 'b', 'c', 'd', 'e');
unset($array[2]); // 删除c元素
print_r($array); // 输出结果:Array ( [0] => a [1] => b [3] => d [4] => e )

Dalam kod di atas, kami mencipta tatasusunan yang mengandungi 5 elemen dan memadamkannya menggunakan fungsi unset(). . Unsur ke-3 (iaitu unsur c). Output akhir menunjukkan bahawa elemen c telah dipadamkan.

Perlu diambil perhatian bahawa apabila anda menggunakan fungsi unset() untuk memadamkan elemen dalam tatasusunan, bukan sahaja elemen itu dipadamkan daripada tatasusunan, tetapi kunci di mana elemen itu berada juga dipadamkan. Oleh itu, jika kita memadamkan elemen di tengah tatasusunan, indeks elemen seterusnya akan bergerak ke hadapan secara automatik, dan ruang kosong akan menjadi NULL. Sebagai contoh, dalam kod di atas, elemen ketiga dalam tatasusunan dipadamkan, jadi indeks elemen keempat menjadi 3, indeks elemen kelima menjadi 4, dan kedudukan ketiga dalam tatasusunan menjadi NULL.

Kaedah 2: Gunakan fungsi array_splice()

Selain menggunakan fungsi unset(), kita juga boleh menggunakan fungsi array_splice() untuk memadamkan elemen dalam tatasusunan. Sintaks fungsi array_splice() adalah seperti berikut:

array_splice(array &$input, int $offset [, int $length [, mixed $replacement ]]) : array

Antaranya, $input mewakili tatasusunan yang akan dikendalikan, $offset mewakili kedudukan permulaan elemen yang akan dipadam, dan $length mewakili bilangan elemen yang akan dipadamkan (parameter pilihan), $replacement mewakili nilai yang akan dimasukkan (parameter pilihan). Selepas fungsi ini dilaksanakan dengan jayanya, ia akan mengembalikan tatasusunan yang mengandungi elemen yang dipadamkan.

Kod sampel berikut menunjukkan cara menggunakan fungsi array_splice() untuk memadam elemen daripada tatasusunan:

$array = array('a', 'b', 'c', 'd', 'e');
array_splice($array, 2, 1); // 删除c元素
print_r($array); // 输出结果:Array ( [0] => a [1] => b [2] => d [3] => e )

Dalam kod di atas, kami mencipta tatasusunan yang mengandungi 5 elemen dan Elemen ke-3 (iaitu elemen c) telah dipadamkan menggunakan fungsi array_splice(). Output akhir menunjukkan bahawa elemen c telah dipadamkan.

Perlu diambil perhatian bahawa apabila menggunakan fungsi array_splice(), jika $length (iaitu bilangan elemen yang akan dipadam) tidak disediakan, semua elemen bermula dari $offset hingga akhir array akan dipadamkan.

Kaedah 3: Gunakan fungsi array_filter()

Fungsi array_filter() boleh digunakan untuk menapis tatasusunan dan mengembalikan tatasusunan baharu yang mengandungi hanya elemen yang memenuhi syarat. Kita boleh menggunakan fungsi array_filter() bersama-sama dengan fungsi tanpa nama untuk memadamkan elemen daripada tatasusunan. Kod sampel adalah seperti berikut:

$array = array('a', 'b', 'c', 'd', 'e');
$offset = 2; // 要删除的元素位置
$array = array_filter($array, function($key) use ($offset) {
    return ($key != $offset);
}, ARRAY_FILTER_USE_KEY);
print_r($array); // 输出结果:Array ( [0] => a [1] => b [3] => d [4] => e )

Dalam kod di atas, kami mencipta tatasusunan yang mengandungi 5 elemen dan menggunakan fungsi array_filter() dan fungsi tanpa nama untuk memadamkan elemen ke-3 (iaitu elemen c). Output akhir menunjukkan bahawa elemen c telah dipadamkan.

Sintaks dengan kata kunci penggunaan untuk fungsi tanpa nama adalah untuk menghantar pembolehubah $offset kepada fungsi tanpa nama supaya fungsi tanpa nama boleh mengakses pembolehubah $offset. Dalam fungsi tanpa nama, $key mewakili kunci elemen tatasusunan, yang digunakan untuk menentukan sama ada elemen itu perlu dikekalkan.

Kaedah 4: Gunakan fungsi array_diff()

Fungsi array_diff() boleh digunakan untuk mengira pelengkap tatasusunan dan mengembalikan nilai dalam $array1 yang tidak wujud dalam $array2 dan tatasusunan seterusnya. Kita boleh menggunakan fungsi array_diff() untuk memadamkan elemen dalam tatasusunan Kodnya adalah seperti berikut:

$array = array('a', 'b', 'c', 'd', 'e');
$offset = 2; // 要删除的元素位置
$array = array_diff($array, array($array[$offset]));
print_r($array); // 输出结果:Array ( [0] => a [1] => b [3] => d [4] => e )

Dalam kod di atas, kami mencipta tatasusunan yang mengandungi 5 elemen dan menggunakan fungsi array_diff() untuk memadam. unsur. 3 unsur (iaitu unsur c). Output akhir menunjukkan bahawa elemen c telah dipadamkan.

Perlu diambil perhatian bahawa fungsi array_diff() perlu lulus dalam tatasusunan, bukan elemen.

Kesimpulan

Dalam PHP, terdapat banyak cara untuk memadamkan elemen dalam tatasusunan. Tidak kira kaedah yang digunakan, terdapat satu persamaan: operasi pemadaman akan mengubah indeks elemen tatasusunan dan menyebabkan tatasusunan disusun semula. Oleh itu, apabila melakukan operasi pemadaman, kita perlu mengendalikan indeks elemen tatasusunan dengan berhati-hati untuk mengelakkan masalah yang tidak perlu. Pada masa yang sama, anda juga perlu memilih kaedah yang paling sesuai dengan anda berdasarkan keperluan sebenar anda.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar elemen dari 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