Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengalih keluar tatasusunan yang bukan integer dalam php

Bagaimana untuk mengalih keluar tatasusunan yang bukan integer dalam php

PHPz
PHPzasal
2023-04-26 14:20:08492semak imbas

Dalam PHP, kadangkala kita perlu mengendalikan elemen integer dalam tatasusunan. Walau bagaimanapun, jika terdapat unsur jenis bukan integer dalam tatasusunan, ini boleh menyebabkan ralat dalam operasi pengiraan seterusnya. Oleh itu, kita perlu mencari cara untuk mengalih keluar elemen bukan integer ini.

Di bawah, saya akan memperkenalkan beberapa kaedah untuk mencapai fungsi ini.

Kaedah 1: Gunakan fungsi is_int() untuk menapis

Fungsi is_int() boleh menentukan sama ada pembolehubah ialah integer. Kita boleh lelaran melalui setiap elemen dalam tatasusunan dan menggunakan fungsi is_int() untuk menentukan sama ada ia adalah jenis integer. Jika ia adalah integer, tambahkannya pada tatasusunan baharu, jika tidak, abaikan elemen tersebut.

Berikut ialah contoh kod:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (is_int($value)) {
        $new_array[] = $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

Dalam contoh ini, kami mentakrifkan tatasusunan primitif $array, yang mengandungi integer, rentetan dan nombor titik terapung. Dengan merentasi tatasusunan, kami menggunakan fungsi is_int() untuk menentukan sama ada setiap elemen ialah jenis integer. Akhir sekali, kami menambah semua elemen integer pada tatasusunan baharu $new_array.

Kaedah 2: Gunakan fungsi ctype_digit() untuk menapis

Selain fungsi is_int(), PHP juga menyediakan fungsi ctype_digit(), yang boleh digunakan untuk menentukan sama ada rentetan hanya mengandungi aksara angka. Oleh itu, kita boleh menukar elemen bukan integer dalam tatasusunan kepada jenis rentetan, dan kemudian gunakan fungsi ctype_digit() untuk menentukan sama ada ia jenis integer.

Berikut ialah contoh kod:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (ctype_digit(strval($value))) {
        $new_array[] = (int) $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

Dalam contoh ini, kita mula-mula menukar setiap elemen dalam tatasusunan kepada jenis rentetan, dan kemudian gunakan fungsi ctype_digit() untuk menentukan sama ada ia adalah jenis Integer. Akhir sekali, jika ia adalah jenis integer, ia ditukar kepada jenis integer dan ditambah pada tatasusunan baru $new_array.

Kaedah 3: Gunakan fungsi array_filter() untuk menapis

Fungsi array_filter() terbina dalam PHP boleh menapis elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Kita boleh menggunakan fungsi ini untuk mengalih keluar elemen bukan integer dengan cepat daripada tatasusunan.

Berikut ialah contoh kod:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array_filter($array, 'is_int');

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [5] => 4 )

Dalam contoh ini, kami terus menggunakan fungsi array_filter() untuk menapis elemen dalam tatasusunan dan mengekalkan elemen jenis integer. Ambil perhatian bahawa fungsi ini hanya akan mengekalkan nilai elemen, bukan subskrip sebelumnya.

Ringkasan

Di atas ialah beberapa cara untuk mengalih keluar unsur bukan integer daripada tatasusunan. Kaedah yang berbeza sesuai untuk situasi yang berbeza dan perlu dipilih mengikut situasi sebenar. Apabila menggunakan fungsi is_int() dan fungsi ctype_digit(), anda perlu memberi perhatian kepada isu penukaran jenis. Apabila menggunakan fungsi array_filter(), anda perlu memberi perhatian kepada perubahan subskrip elemen. Menguasai kaedah ini boleh membantu kami mengendalikan elemen integer dalam tatasusunan dengan lebih cekap.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar tatasusunan yang bukan integer 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