Dalam artikel kami sebelum ini, kami belajar tentang kaedah pembahagian tatasusunan satu dimensi kepada tatasusunan dua dimensi yang mengandungi bilangan elemen tertentu Jika anda berminat, anda boleh klik pada pautan untuk membaca → " Pembelajaran Tatasusunan PHP Menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi yang mengandungi berbilang elemen yang ditetapkan 》. Kali ini kita akan mengkaji dan mempraktikkan tatasusunan PHP dan bercakap tentang cara membuang kekosongan dan pertindihan dalam tatasusunan.
→Syor berkaitan: 《 Ringkasan siri pembelajaran tatasusunan PHP (dikemas kini secara berterusan~)》
Kandungan utama artikel hari ini adalah untuk memadam tatasusunan elemen kosong dan elemen berulang.
Mula-mula mari kita lihatBagaimana untuk memadamkan elemen kosong dalam tatasusunan? Di sini saya akan memperkenalkan dua kaedah.
Kaedah 1, foreach loop empty() unset()
Idea pelaksanaan:
Gunakan foreach statement Untuk melintasi tatasusunan $array, tetapkan nama kunci kepada $key dalam setiap gelung dan tetapkan nilai kunci kepada $value
foreach($array as $key => $value){ }
dalam Dalam gelung, gunakan fungsi empty() untuk menentukan sama ada $value kosong Jika ia kosong, gunakan unset() untuk memadamkan elemen
Di bawah ini kami berikan pelaksanaan lengkap. kod:
<?php header("content-type:text/html;charset=utf-8"); $array = array("php", 11, '', 12, "PHP中文网", '',2021,"mysql"); var_dump($array); // 使用array_filter()函数从数组中移除空元素 $filtered_array = array_filter($array); echo "删除空元素后的数组"; var_dump($filtered_array); ?>
Hasil keluaran:
Penjelasan: Dalam PHP, fungsi empty() digunakan untuk menyemak sama ada pembolehubah dianggap kosong.
kosong() akan menganggap pembolehubah itu kosong apabila ia sama dengan nilai berikut:
""(rentetan kosong)
0 (0 sebagai integer)
0.0 (0 sebagai nombor titik terapung)
“0 ” (0 sebagai rentetan)
NULL
SALAH
Array() ( Tatasusunan kosong)
$var (pembolehubah nilai yang diisytiharkan tetapi tiada)
Kaedah 2. Gunakan fungsi array_filter() boleh menapis elemen dalam tatasusunan menggunakan fungsi panggil balik. Fungsi ini berulang melalui setiap nilai dalam tatasusunan, menghantarnya ke fungsi yang ditentukan pengguna atau fungsi panggil balik. Jika fungsi panggil balik diabaikan, nilai nol akan ditapis secara lalai.
Fungsi (array_filter() tidak akan menukar tatasusunan asal)Hasil keluaran:
<?php header("content-type:text/html;charset=utf-8"); $array = array("php", 11, '', 12, "PHP中文网", '',2021,"mysql",""); var_dump($array); // 使用array_filter()函数从数组中移除空元素 $filtered_array = array_filter($array); echo "删除空元素后的数组"; var_dump($filtered_array); ?>
Ia boleh dilihat bahawa array_filter() sedang menapis Indeks tidak ditetapkan semula apabila menambah elemen tatasusunan. Selepas memadamkan elemen kosong, susunan indeks asal masih diikuti.
Jadi jika anda ingin menetapkan semula indeks dan menyusun semula daripada 0, apakah yang perlu anda lakukan? Kita boleh menggunakan fungsi.
array_values()
var_dump(array_values($filtered_array));
Bukankah ia sangat mudah!
Di atas kita telah mempelajari cara mengalih keluar elemen kosong, mari lihatcara mengalih keluar elemen tatasusunan pendua
.Tidak perlu menggunakan kaedah lain untuk memadam tatasusunan pendua dalam tatasusunan PHP PHP mempunyai fungsi terbina dalam untuk mencapai operasi ini.
Baiklah, jangan kecoh lagi, hanya fungsi. Jika terdapat dua atau lebih nilai dalam tatasusunan yang sama, fungsi array_unique() hanya mengekalkan nilai pertama dan nilai lain dialih keluar.
array_unique()
Hasil keluaran:
<?php header("content-type:text/html;charset=utf-8"); $array = array("php", 11, '', 11, "PHP中文网",'',"green",2021,"mysql","","green"); var_dump($array); $result = array_unique($array); echo "删除重复元素后的数组"; //var_dump(array_values($filtered_array)); var_dump($result); ?>
Fungsi array_unique() tidak akan menetapkan semula nama kunci (indeks), dan tatasusunan yang dikekalkan akan kekal dahulu. jenis utama item tatasusunan. Oleh itu, selepas menggunakan fungsi array_unique() untuk mengalih keluar elemen pendua, anda boleh menggunakan fungsi array_values() untuk menetapkan semula indeks.
var_dump(array_values($result));
Malah, kita juga boleh menggunakan ciri bahawa tiada nama kunci pendua dalam tatasusunan untuk mengalih keluar elemen tatasusunan pendua.
Idea pelaksanaan: mula-mula tukar nama kunci dan nilai kunci untuk mengalih keluar nilai pendua; kemudian tukar nama kunci dan nilai kunci semula (disyorkan membaca "PHP Array Learning: Cara Menukar Nama Utama Tukarkan kedudukan kunci dan nilai
》). Kod kunci:Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh mengklik ini. → →
Tutorial video phparray_flip(array_flip($array))
Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP: Penjelasan video fungsi tatasusunan fungsi PHP
, datang dan pelajari!Atas ialah kandungan terperinci Ketahui cara mengalih keluar elemen kosong atau pendua daripada tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!