⊗ppSpOtAC 83 of 83 menu

Pengoptimuman Penukaran kepada Array dalam PHP

Tidak selalu perlu memisahkan rentetan kepada array untuk melakukan sesuatu dengannya.

Mari kita lihat contoh. Dalam contoh berikut, penulis kod menyemak sama ada terdapat digit 3 dalam rentetan:

<?php $str = '12345'; $arr = explode('', $str); // pecahkan kepada array if (in_array(3, $arr)) { echo 'ada'; } else { echo 'tiada'; } ?>

Penulis bagus - menggunakan fungsi terbina dalam PHP, dan tidak menulis penyelesaian yang janggal.

Tetapi kod masih tidak optimum: di sini tidak perlu memisahkan rentetan kepada array, kerana terdapat fungsi sedia ada strpos yang melakukan carian dalam rentetan:

<?php $str = '12345'; if (strpos($str, '3') !== false) { echo 'ada'; } else { echo 'tiada'; } ?>

Mengapa memecahkan kepada array tidak baik di sini? Kerana, pertama, pemecahan kepada array menggunakan sumber pemproses, kedua, array yang terhasil akan mengambil ruang dalam memori operasi (malah ruangnya akan lebih besar daripada ruang yang diambil oleh rentetan asal).

Pengajaran: jangan pecahkan rentetan kepada array jika ada cara untuk tidak melakukannya.

Dalam kod berikut, seorang pengaturcara membalikkan aksara rentetan dalam susunan terbalik. Optimumkan penyelesaian pengaturcara ini:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // akan memaparkan '543321' ?>

Dalam kod berikut, seseorang mencari bilangan perkataan dalam teks. Optimumkan penyelesaian pengaturcara ini:

<?php $str = 'aaa bbb ccc'; // sebarang rentetan panjang echo count(explode(' ', $str)); ?>
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak