Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengosongkan elemen bukan angka dalam tatasusunan dalam php

Bagaimana untuk mengosongkan elemen bukan angka dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-19 11:41:47708semak imbas

Dalam pembangunan PHP, tatasusunan ialah jenis data yang sangat penting. Kita mungkin perlu mengosongkan semua elemen bukan angka dalam tatasusunan untuk melakukan pengiraan yang lebih kompleks atau operasi lain.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengosongkan elemen bukan angka dalam tatasusunan dan memberikan beberapa contoh praktikal untuk membantu pembaca memahami proses ini dengan lebih baik.

  1. Gunakan fungsi PHP terbina dalam array_filter()

Fungsi array_filter() boleh merentasi tatasusunan dan memadamkan elemen yang tidak memenuhi syarat. Kita boleh menggunakan fungsi ini untuk menapis tatasusunan melalui fungsi tersuai, mengekalkan hanya elemen angka. Berikut ialah contoh kod:

$array = array("string", 1234, "5", "67.8", 90);

function only_num($var)
{
    return is_numeric($var);
}

$result = array_filter($array, "only_num");

print_r($result);  //输出:Array ( [1] => 1234 [2] => 5 [3] => 67.8 [4] => 90 )

Dalam contoh di atas, kami menggunakan fungsi is_numeric(), yang menentukan sama ada pembolehubah yang diberikan ialah nombor atau rentetan nombor. Kami kemudian menghantar fungsi ini sebagai fungsi panggil balik kepada fungsi array_filter() untuk memproses tatasusunan.

  1. Menggunakan Ungkapan Biasa

Ungkapan biasa ialah alat pemprosesan teks yang sangat berguna yang boleh anda gunakan untuk memadankan dan menggantikan teks dengan corak. Dalam kes ini, kita boleh menggunakan ungkapan biasa untuk memadankan semua nombor dan mengalih keluar elemen bukan nombor.

Berikut ialah contoh ungkapan biasa untuk membersihkan tatasusunan:

$array = array("string", 1234, "5", "67.8", 90);

foreach ($array as $key => $value) {
    if (preg_match('/^\d+$/',$value) !== 1) {
        unset($array[$key]);
    }
}

print_r($array);  //输出:Array ( [1] => 1234 [2] => 5 [4] => 90 )

Dalam contoh di atas, kami menggunakan fungsi preg_match() dan ungkapan biasa "/^d+$ /" untuk memadankan Semua rentetan angka. Jika padanan berjaya (1 dikembalikan), elemennya ialah nombor. Jika tidak, kami akan memanggil fungsi unset() untuk memadamkan elemen. Akhirnya, kami mengeluarkan elemen angka yang tinggal ke skrin.

  1. Menggunakan fungsi array_walk()

Fungsi array_walk() ialah satu lagi fungsi terbina dalam PHP yang boleh digunakan untuk melintasi tatasusunan dan melaksanakan fungsi tersuai pada setiap elemen. Kita boleh menggunakan fungsi ini untuk mengosongkan elemen bukan angka daripada tatasusunan.

Berikut ialah contoh menggunakan fungsi array_walk() untuk membersihkan tatasusunan:

$array = array("string", 1234, "5", "67.8", 90);

function only_num(&$value, $key)
{
    if (!is_numeric($value)) {
        unset($value);
    }
}

array_walk($array, "only_num");

print_r($array);  //输出:Array ( [1] => 1234 [2] => 5 [3] => 67.8 [4] => 90 )

Dalam contoh di atas, kami menghantar fungsi panggil balik ke fungsi array_walk() untuk mengosongkan unsur bukan angka. Apabila elemen itu bukan nombor, kami mengalih keluarnya supaya hanya elemen angka yang kekal.

Kesimpulan

Dalam pembangunan PHP, penggunaan tatasusunan adalah sangat biasa. Kadangkala, kita perlu mengalih keluar semua elemen bukan angka daripada tatasusunan untuk melakukan pengiraan kompleks atau operasi lain. Artikel ini menerangkan tiga cara berbeza untuk mencapai matlamat ini: menggunakan fungsi PHP terbina dalam array_filter(), menggunakan ungkapan biasa dan menggunakan fungsi array_walk(). Anda boleh memilih kaedah yang berbeza mengikut keperluan anda sendiri, dan mengubah suai serta menyesuaikannya mengikut situasi sebenar. Dalam pembangunan sebenar, teknik ini sepatutnya sangat berguna.

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan elemen bukan angka 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