Rumah > pembangunan bahagian belakang > masalah PHP > php alih keluar tatasusunan kosong

php alih keluar tatasusunan kosong

WBOY
Lepaskan: 2023-05-23 10:20:07
asal
1455 orang telah melayarinya

Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu mengalih keluar tatasusunan kosong. Kerana tatasusunan kosong akan menduduki sumber sistem dan meningkatkan kerumitan program dan kos operasi. Oleh itu, mengalih keluar tatasusunan kosong dengan betul adalah sangat penting untuk pembangunan PHP.

Mari perkenalkan beberapa kaedah untuk mengalih keluar tatasusunan kosong dalam PHP.

Kaedah 1: Gunakan fungsi array_filter

PHP menyediakan fungsi array_filter, yang boleh mengalih keluar tatasusunan kosong dengan mudah.

Sintaks asas fungsi array_filter adalah seperti berikut:

array array_filter ( array $array [, callable $callback [, int $flag ]] )
Salin selepas log masuk

di mana $array ialah tatasusunan input, $callback ialah parameter pilihan, menyatakan fungsi panggil balik, $flag ialah parameter pilihan , menyatakan logo tambahan. Fungsi panggil balik perlu mengembalikan nilai Boolean untuk menentukan sama ada setiap elemen tatasusunan perlu dikekalkan.

Contoh berikut menunjukkan cara menggunakan fungsi array_filter untuk mengalih keluar tatasusunan kosong:

$data = array('foo', false, -1, null, 0, '', 'bar');
$result = array_filter($data, function($item) {
    return !empty($item);
});
print_r($result);
Salin selepas log masuk

Keluaran kod di atas ialah:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dengan menggunakan fungsi array_filter dan fungsi panggil balik, kami Anda boleh mengalih keluar nilai nol dalam tatasusunan dan mengekalkan hanya nilai yang sah.

Kaedah 2: Gunakan gelung foreach

Jika anda tidak mahu menggunakan fungsi array_filter, anda juga boleh menggunakan gelung foreach untuk mengalih keluar tatasusunan kosong. Malah, prinsipnya juga sangat mudah Kami merentasi setiap elemen tatasusunan, menentukan sama ada elemen itu kosong, dan kemudian menyimpan nilai yang sah ke tatasusunan baharu.

Contoh berikut menunjukkan cara menggunakan gelung foreach untuk mengalih keluar tatasusunan kosong:

$data = array('foo', false, -1, null, 0, '', 'bar');
$result = array();
foreach ($data as $item) {
    if (!empty($item)) {
        $result[] = $item;
    }
}
print_r($result);
Salin selepas log masuk

Keluaran kod di atas ialah:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dengan menggunakan gelung foreach dan pertimbangan syarat, kita Anda boleh mendapatkan hasil yang sama seperti fungsi array_filter, mengalih keluar nilai nol dalam tatasusunan dan mengekalkan hanya nilai yang sah.

Kaedah 3: Gunakan fungsi array_reduce

Selain daripada array_filter dan gelung foreach, PHP juga menyediakan fungsi array_reduce untuk mengira semua nilai dalam tatasusunan. Kita boleh menggunakan fungsi array_reduce untuk mengalih keluar tatasusunan kosong.

Sintaks asas fungsi array_reduce adalah seperti berikut:

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
Salin selepas log masuk

di mana $array ialah tatasusunan yang perlu diproses, $callback ialah fungsi panggil balik dan $initial ialah parameter pilihan , menyatakan nilai awal fungsi panggil balik.

Contoh berikut menunjukkan cara menggunakan fungsi array_reduce untuk membuang tatasusunan kosong:

$data = array('foo', false, -1, null, 0, '', 'bar');
$result = array_reduce($data, function($accumulator, $item) {
    if (!empty($item)) {
        $accumulator[] = $item;
    }
    return $accumulator;
}, array());
print_r($result);
Salin selepas log masuk

Keluaran kod di atas ialah:

array (
  0 => 'foo',
  1 => -1,
  2 => 'bar',
)
Salin selepas log masuk

Dengan menggunakan fungsi array_reduce dan fungsi panggil balik, kami Anda boleh mengalih keluar nilai nol daripada tatasusunan dan menyimpan hanya nilai yang sah.

Kaedah 4: Gunakan fungsi array_diff

Fungsi array_diff ialah satu lagi fungsi pemprosesan tatasusunan PHP Fungsinya adalah untuk mengembalikan nilai yang terdapat dalam satu tatasusunan tetapi tidak dalam tatasusunan lain.

Contoh berikut menunjukkan cara menggunakan fungsi array_diff untuk mengalih keluar tatasusunan kosong:

$data = array('foo', false, -1, null, 0, '', 'bar');
$result = array_diff($data, array(null, '', false, 0));
print_r($result);
Salin selepas log masuk

Keluaran kod di atas ialah:

array (
  0 => 'foo',
  2 => -1,
  6 => 'bar',
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dengan menggunakan fungsi array_diff, kita boleh mengalih keluar array nilai NULL dalam , hanya nilai yang sah dikekalkan. Perlu diingatkan bahawa tatasusunan yang diluluskan sebagai parameter kedua kepada fungsi array_diff perlu mengandungi semua nilai null yang mungkin.

Kesimpulan

Melalui kaedah di atas, kita boleh mengalih keluar nilai nol dengan mudah dalam tatasusunan PHP dan hanya mengekalkan nilai yang sah. Dalam pembangunan sebenar, kita perlu memilih kaedah yang akan digunakan berdasarkan situasi sebenar. Jika anda hanya perlu mengalih keluar nilai nol, adalah disyorkan untuk menggunakan fungsi array_filter atau gelung foreach. Jika anda perlu mengira nilai lain dalam tatasusunan, pertimbangkan untuk menggunakan fungsi array_reduce. Pada masa yang sama, apabila menggunakan fungsi array_diff, anda perlu ambil perhatian bahawa parameter kedua perlu mengandungi semua nilai null yang mungkin.

Atas ialah kandungan terperinci php alih keluar tatasusunan kosong. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan