⊗ppSpOtAC 83 of 83 menu

Tối ưu hóa chuyển đổi thành mảng trong PHP

Không phải lúc nào cũng cần tách một chuỗi thành một mảng để thao tác với nó.

Hãy xem xét một ví dụ. Trong ví dụ tiếp theo, tác giả mã kiểm tra xem chuỗi có chứa chữ số 3 hay không:

<?php $str = '12345'; $arr = explode('', $str); // tách thành mảng if (in_array(3, $arr)) { echo 'có'; } else { echo 'không'; } ?>

Tác giả rất giỏi - sử dụng các hàm có sẵn của PHP thay vì viết những giải pháp tạm thời (workaround) của riêng mình.

Nhưng mã vẫn chưa tối ưu: ở đây không có lý do gì để tách chuỗi thành mảng, bởi vì đã tồn tại hàm strpos sẵn có, thực hiện tìm kiếm trong chuỗi:

<?php $str = '12345'; if (strpos($str, 3) !== false) { echo 'có'; } else { echo 'không'; } ?>

Tại sao việc tách thành mảng ở đây lại không tốt? Bởi vì, thứ nhất, việc tách thành mảng tiêu tốn tài nguyên của bộ xử lý, thứ hai, mảng thu được sẽ chiếm dụng bộ nhớ RAM (hơn nữa, nó sẽ nhiều hơn dung lượng mà chính chuỗi đó chiếm dụng).

Bài học: đừng tách chuỗi thành mảng nếu có cách không cần làm điều đó.

Trong mã tiếp theo, một lập trình viên nào đó đảo ngược các ký tự của chuỗi theo thứ tự ngược lại. Hãy tối ưu hóa giải pháp của lập trình viên này:

<?php $str = '12345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // sẽ xuất ra '54321' ?>

Trong mã tiếp theo, một lập trình viên tìm số lượng từ trong văn bản. Hãy tối ưu hóa giải pháp của lập trình viên này:

<?php $str = 'aaa bbb ccc'; // một chuỗi dài nào đó echo count(explode(' ', $str)); ?>
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối