Tách từng ký tự trong chuỗi PHP (substr, preg_split) | Laptrinhcanban.com

Tách từng ký tự trong chuỗi PHP (substr, preg_split)

Hướng dẫn cách tách từng ký tự trong chuỗi PHP. Bạn sẽ học được 2 cách cơ bản để tách từng ký tự trong chuỗi PHP sau bài học này.

Chúng ta có 2 phương pháp để xóa ký tự trong chuỗi PHP như sau:

  • Tách từng ký tự trong chuỗi PHP bằng hàm substr()
  • Tách từng ký tự trong chuỗi PHP bằng hàm preg_split()

Tách từng ký tự trong chuỗi PHP bằng hàm mb_str_split

Trong bài chuyển chuỗi thành mảng trong PHP chúng ta đã biết cách sử dụng hàm mb_str_split để tách các chuỗi con theo độ dài (số ký tự) từ trong chuỗi ban đầu.

Ứng dụng hàm này, khi lược bỏ đi đối số chỉ định độ dài (số ký tự), hoặc đặt nó bằng 1, khi đó từng ký tự sẽ được tách ra từ chuỗi ban đầu.

Và chúng ta có thể tách từng ký tự trong chuỗi PHP bằng hàm mb_str_split bằng một trong hai cú pháp sau đây:

mb_str_split( $str );

mb_str_split( $str, 1);

Hãy xem ví dụ cụ thể sau đây:

$str  = "abcd";
$arr = mb_str_split ($str);

print_r( $arr);

Kết quả:

Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)

Tương tự với các chuỗi có chứa ký tự trên 2 byte như tiếng Việt có dấu, hán tự Trung Nhật:

$str = "chào";
$arr = mb_str_split ($str);

print_r( $arr);

Kết quả:

Array
(
[0] => c
[1] => h
[2] => à
[3] => o
)

Lưu ý, mặc dù chúng ta cũng có thể dùng hàm str_split để tách từng ký tự trong chuỗi PHP khi tất cả các ký tự tạo chuỗi đều là ký tự 1 byte (ký tự tiếng Anh), nhưng do hàm str_split nếu dùng với chuỗi có tiếng Việt sẽ hay nhầm giữa số byte và số ký tự, nên Kiyoshi khuyến khích sử dụng hàm mb_str_split để tách từng ký tự trong chuỗi PHP.

Tách từng ký tự trong chuỗi PHP bằng hàm preg_split

Trong bài tách chuỗi trong PHP chúng ta đã biết cách sử dụng hàm preg_split để tách các chuỗi con theo một chuỗi hoặc ký tự được mô tả bằng biểu thức chính quy từ trong chuỗi ban đầu.

Ứng dụng hàm này, khi tách các chuỗi con bằng một ký tự trống, kèm với sử dụng flag loại bỏ chuỗi trống sau khi tách, chúng ta có thể tách từng ký tự trong chuỗi PHP bằng hàm preg_split với cú pháp sau đây:

preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

Hãy xem ví dụ cụ thể sau đây:

$str = 'abcdef';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

Kết quả:

Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
)

Lưu ý là hàm này không dùng được với các chuỗi có chứa ký tự trên 2 byte như tiếng Việt có dấu, hán tự Trung Nhật, vì kết quả trả về sẽ ở dạng không đọc được. Ví dụ:

$str = "chào";
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

Kết quả:

Array
(
[0] => c
[1] => h
[2] => �
[3] => �
[4] => o
)

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về các cách tách từng ký tự trong chuỗi PHP rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.