Bagaimana untuk menukar rentetan kepada tatasusunan integer dalam php

PHPz
Lepaskan: 2023-04-26 11:13:44
asal
1318 orang telah melayarinya

Dalam PHP, kita selalunya perlu menukar rentetan kepada tatasusunan integer untuk pemprosesan data selanjutnya. Di bawah ini kami akan memperkenalkan beberapa kaedah untuk menukar rentetan kepada tatasusunan integer.

Kaedah 1: Gunakan fungsi explode()

Fungsi explode() boleh memisahkan rentetan kepada tatasusunan mengikut pembatas yang ditentukan. Dengan menggunakan penukaran fungsi dan jenis ini, kita boleh menukar rentetan yang dipisahkan koma kepada tatasusunan integer.

Sebagai contoh, kami mempunyai rentetan berikut:

$str = "1,2,3,4,5";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kemudian anda boleh menggunakan kod berikut untuk menukarnya kepada tatasusunan integer:

$arr = explode(",", $str);
for ($i = 0; $i < count($arr); $i++) {
    $arr[$i] = (int)$arr[$i]; //转换成整型后存入数组
}
Salin selepas log masuk

Kaedah 2 : Gunakan Fungsi preg_split ()

Serupa dengan fungsi explode(), fungsi preg_split() juga boleh memisahkan rentetan kepada tatasusunan mengikut corak yang ditentukan. Kaedah ini sedikit lebih rumit daripada fungsi explode(), tetapi boleh mengendalikan rentetan yang lebih kompleks.

Sebagai contoh, kami mempunyai rentetan berikut:

$str = "1 | 2 | 3 | 4 | 5";
Salin selepas log masuk

Kemudian anda boleh menggunakan kod berikut untuk menukarnya kepada tatasusunan integer:

$arr = preg_split("/[|]+/", $str);
for ($i = 0; $i < count($arr); $i++) {
    $arr[$i] = (int)$arr[$i]; //转换成整型后存入数组
}
Salin selepas log masuk

Kaedah 3 : Gunakan fungsi array_map ()

array_map() fungsi ialah fungsi yang sangat berguna yang boleh melakukan pemprosesan tertentu pada setiap elemen dalam tatasusunan. Kita boleh menghantar fungsi intval() sebagai parameter kepada fungsi array_map(), yang menukar rentetan kepada integer.

Sebagai contoh, kami mempunyai rentetan berikut:

$str = "1,2,3,4,5";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kemudian anda boleh menggunakan kod berikut untuk menukarnya kepada tatasusunan integer:

$arr = array_map('intval', explode(',', $str));
Salin selepas log masuk

Kaedah 4 : Gunakan fungsi array_walk ()

adalah serupa dengan fungsi array_map() Fungsi array_walk() juga melakukan pemprosesan tertentu pada setiap elemen dalam tatasusunan. Kita boleh mengubah setiap elemen menggunakan fungsi array_walk(). Tetapi dalam kes ini, kita perlu mentakrifkan fungsi panggil balik untuk melaksanakan penukaran, dan kemudian gunakan fungsi array_walk() untuk memanggil fungsi panggil balik.

Sebagai contoh, kami mempunyai rentetan berikut:

$str = "1,2,3,4,5";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kemudian anda boleh menggunakan kod berikut untuk menukarnya kepada tatasusunan integer:

function convertToInt(&$value) {
    $value = (int)$value;
}

$arr = explode(',', $str);
array_walk($arr, 'convertToInt');
Salin selepas log masuk

Kesimpulan

Empat kaedah di atas boleh menukar rentetan kepada tatasusunan integer. Antaranya, kaedah menggunakan fungsi array_map() adalah agak mudah, dan kaedah menggunakan fungsi preg_split() secara relatifnya adalah yang paling fleksibel. Kaedah mana yang hendak digunakan bergantung pada situasi khusus yang sedang ditangani.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada tatasusunan integer dalam php. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!