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

Bagaimana untuk mengalih keluar indeks elemen kosong dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-12 09:18:57479semak imbas

Pertama sekali, mari kita fahami dahulu apa itu indeks unsur kosong.

Dalam PHP, tatasusunan terdiri daripada kunci dan nilai, dan hubungan sepadannya adalah seperti hubungan antara kunci dan nilai dalam kamus. Dalam PHP, kunci dalam tatasusunan boleh menjadi nombor atau rentetan. Apabila kita memadamkan tika daripada tatasusunan, tika itu dialih keluar daripada tatasusunan, tetapi indeksnya kekal dalam tatasusunan. Jika kita memadamkan semua elemen dalam tatasusunan tetapi masih mengekalkan tatasusunan, ia akan menjadi tatasusunan kosong dan kunci tatasusunan kosong masih wujud. Dalam tatasusunan kosong ini, nilai yang sepadan dengan kunci juga kosong, jadi kami memanggilnya indeks elemen kosong.

Jika tatasusunan mengandungi banyak indeks elemen kosong, elemen kosong ini akan menjejaskan traversal dan pemprosesan tatasusunan kami, jadi kadangkala kami perlu mengalih keluar elemen kosong ini. Seterusnya, mari kita lihat cara untuk mengalih keluar indeks elemen kosong dalam tatasusunan dan menetapkan semula indeks dalam urutan dalam PHP.

Dalam PHP, terdapat dua fungsi yang sangat berguna yang boleh digunakan untuk mengalih keluar indeks elemen kosong dalam tatasusunan, ia adalah array_filter() dan array_values(). Fungsi pertama tatasusunan digunakan untuk menapis fungsi panggil balik dalam tatasusunan, dan fungsi kedua digunakan untuk menetapkan semula indeks semua kunci dalam tatasusunan.

Mari kita lihat dahulu sintaks asas fungsi array_filter().

array array_filter( array $array [, callable $callback [, int $flag = 0 ]] )

Fungsi menerima tatasusunan sebagai parameter dan mengembalikan tatasusunan ditapis baharu. Parameter pilihan kedua $callback menentukan fungsi panggil balik yang akan dipanggil untuk setiap elemen dalam tatasusunan yang diberikan. Jika fungsi panggil balik mengembalikan benar, elemen akan dimasukkan dalam tatasusunan baharu, jika ia mengembalikan palsu, elemen itu akan dialih keluar daripada tatasusunan baharu.

Mari kita lihat contoh praktikal:

$array = array("foo", "", "bar", "", "baz");
$filtered_array = array_filter($array);
print_r($filtered_array);

Dalam contoh di atas, array $array mengandungi lima elemen, dua daripadanya adalah elemen kosong. Menggunakan fungsi array_filter(), elemen kosong dalam array dialih keluar dan array baru $filtered_array dikembalikan. Outputnya adalah seperti berikut:

Array
(
    [0] => foo
    [2] => bar
    [4] => baz
)

Dalam keputusan di atas, kita dapat melihat bahawa tatasusunan baharu $filtered_array tidak mengandungi indeks unsur kosong.

Seterusnya, mari kita lihat cara untuk menetapkan semula indeks semua kunci dalam tatasusunan. Ini boleh dicapai melalui fungsi array_values() terbina dalam PHP. Fungsi ini menerima tatasusunan sebagai parameter dan mengembalikan tatasusunan baharu di mana semua kunci ditetapkan semula kepada integer berturut-turut.

Mari kita lihat contoh praktikal:

$array = array("foo", "bar", "baz");
$indexed_array = array_values($array);
print_r($indexed_array);

Dalam contoh di atas, kita diberikan tatasusunan $array tanpa kunci, menggunakan fungsi array_values(), Tatasusunan baru $indexed_array akan dijana, di mana semua nama kunci akan ditetapkan semula kepada integer berturut-turut. Outputnya adalah seperti berikut:

Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)

Dalam keputusan di atas, kita dapat melihat bahawa nama kunci dalam tatasusunan baharu $indexed_array telah ditetapkan dengan betul kepada integer berturut-turut.

Kini kita boleh merantai kedua-dua fungsi ini untuk memproses tatasusunan yang mengandungi indeks elemen kosong dan mengembalikan tatasusunan baharu dengan indeks yang dikunci semula.

Mari kita lihat contoh praktikal:

$array = array("foo", "", "bar", "", "baz");
$filtered_array = array_filter($array);
$indexed_array = array_values($filtered_array);
print_r($indexed_array);

Dalam contoh di atas, kita menggunakan dua fungsi array_filter() dan array_values() dan menggabungkannya. Mula-mula, kami menggunakan fungsi array_filter() untuk mengalih keluar indeks elemen kosong dalam tatasusunan, dan kemudian gunakan fungsi array_values() untuk menetapkan semula indeks semua kunci dalam tatasusunan baharu. Keputusan output adalah seperti berikut:

Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)

Dalam keputusan di atas, kita dapat melihat bahawa tatasusunan baharu $indexed_array tidak lagi mengandungi indeks elemen kosong dan indeks semua kunci telah ditetapkan semula kepada integer berturut-turut.

Ringkasnya, dengan menggunakan fungsi array_filter() dan fungsi array_values(), kita boleh mengendalikan indeks elemen kosong dalam tatasusunan PHP dan menetapkan indeks semua kunci dalam tatasusunan baharu dengan mudah Penulisan kod PHP.

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