Tại sao bạn cần chuyển đổi một chuỗi thành một mảng trong PHP?
Có nhiều trường hợp khi một mảng được coi là phù hợp hơn một chuỗi. Ví dụ: bạn có thể chuyển đổi mật khẩu được nhập làm đầu vào trong ứng dụng web thành một mảng trước khi lưu trữ chúng trong cơ sở dữ liệu . Điều này cung cấp bảo mật hơn và dễ dàng truy cập vào dữ liệu. Mảng có thể giúp bạn triển khai tổ chức dữ liệu tốt hơn và hoạt động nhanh hơn. Khi bạn chuyển đổi một chuỗi thành một mảng, nó giúp cho việc thao tác dữ liệu trở nên thuận tiện. Là một ngôn ngữ kịch bản mạnh mẽ, PHP cung cấp nhiều phương thức tích hợp sẵn khác nhau để chuyển đổi một chuỗi thành một mảng. Bài viết này giải thích một số cách tiếp cận để đạt được nhiệm vụ này.
Sau đây là danh sách đầy đủ các phương thức có thể được sử dụng trong PHP để chuyển đổi một chuỗi thành một mảng.
- str_split() Function
- explode("DELIMITER", STRING)
- preg_split() Function
- str_word_count() Function
- Manually loop through the string
- json_decode() Function
- unserialize() Function
Có nhiều cách tiếp cận khác nhau, bao gồm các hàm có sẵn và các cách tiếp cận thủ công được sử dụng để chuyển đổi chuỗi thành mảng trong PHP.
-
Hàm str_split ()
Phương thức đầu tiên trong danh sách này là str_split (). Đây là một phương thức PHP có sẵn được sử dụng để chuyển đổi một chuỗi thành một mảng bằng cách chia chuỗi thành các chuỗi con nhỏ hơn có độ dài đồng nhất và lưu trữ chúng trong một mảng. Nó không sử dụng bất kỳ loại dấu phân tách nào, nó chỉ tách chuỗi.
Cú pháp của hàm str_split () là:
str_split ($ initial_string, $ splitting_length)
Thông số
- $ initial_string (bắt buộc): Tham số đầu tiên bạn truyền cho hàm này là chuỗi phải được chuyển đổi thành một mảng.
- $ splitting_length (tùy chọn): Tham số thứ hai là một số nguyên đại diện cho thời gian các phần của chuỗi sau khi tách. Nó là một tham số tùy chọn. Nếu không được thông qua, hàm sẽ coi độ dài này là 1 theo mặc định.
Giá trị trả lại
Hàm này trả về một mảng có chứa các phần của chuỗi ban đầu. Nếu độ dài được truyền cho hàm vượt quá độ dài của chuỗi ban đầu, hàm sẽ trả về toàn bộ chuỗi dưới dạng một phần tử, trong khi nếu số nguyên độ dài nhỏ hơn một, hàm sẽ trả về false.
Example
Input:
"Program"
Output:
Array
(
[0] => P
[1] => r
[2] => o
[3] => g
[4] => r
[5] => a
[6] => m
)
Input:
"Programming Language"
Output:
Array
(
[0] => Prog
[1] => ram
[2] => ming
[3] => Lang
[4] => uage
)
The following example illustrates the working of the str_split() function to convert string to array in PHP.
<?php
// define a string
$my_string = 'Sample String';
// without passing length
// length = 1 (by default)
$my_array1 = str_split($my_string);
// print the array
echo "The array of default length elements is: ";
print_r($my_array1); // s, a, m, p, l, e, s, t, r, i, n, g
print("<br><br>");
// passing length as second argument
// length = 3
$my_array2 = str_split($my_string, 3);
// print the array
echo "The array of length 3 elements is: ";
print_r($my_array2); // sam, ple, str, ing
?>
Trong ví dụ trên, nó khởi tạo một biến $ my_string1 với một chuỗi “Chuỗi mẫu”. Nó sử dụng phương thức str_split () để chuyển đổi chuỗi thành một mảng. Biểu thức sau chuyển chuỗi tới phương thức này mà không truyền đối số độ dài.
$ my_array1 = str_split ($ my_string);
Theo mặc định, nếu bạn không vượt qua dấu phân cách độ dài, nó sẽ nhận nó là 1. Vì vậy, nó chuyển đổi các phần tử riêng biệt của chuỗi thành các phần tử mảng. Và biểu thức sau chuyển 3 làm dấu phân cách độ dài, chuyển đổi chuỗi con có độ dài 3 thành các phần tử mảng.
$ my_array2 = str_split ($ my_string, 3);
explode("DELIMITER", STRING);
Hàm boom () là một phương thức khác của PHP được sử dụng để chuyển đổi một chuỗi thành một mảng. Không giống như hàm str_split (), hàm này sử dụng dấu phân tách hoặc dấu phân tách cần được chuyển làm đối số cho hàm. Dấu phân tách này có thể là dấu phẩy (,), dấu chấm (.) Hoặc bất cứ thứ gì. Sau khi tách chuỗi thành các chuỗi con nhỏ hơn, hàm này lưu trữ chúng trong một mảng và trả về mảng.
Cú pháp của hàm boom () là
bùng nổ ($ phân tách, $ initial_string, $ no_of_elements)
Thông số
- Dấu phân tách $: Dấu phân tách là một ký tự lệnh cho hàm boom () để tách chuỗi bất cứ khi nào nó phát hiện dấu phân tách và lưu trữ chuỗi con đó trong mảng.
- $ initial_name: Tham số thứ hai được truyền cho hàm này là chuỗi phải được chuyển đổi thành một mảng.
- $ no_of_elements (tùy chọn): Đây là tham số cuối cùng và là tham số tùy chọn được chuyển cho hàm này. Tham số này đại diện cho số lượng chuỗi mà nó sẽ chia chuỗi ban đầu. Số này có thể là số dương, số âm hoặc số không.
- Tích cực: Nếu số nguyên được truyền là số dương, thì mảng sẽ lưu trữ nhiều số phần tử này. Nếu bạn tách chuỗi thành nhiều hơn N số phần liên quan đến dấu phân cách, thì N-1 phần tử đầu tiên vẫn giữ nguyên và phần còn lại kết hợp để tạo thành một phần tử duy nhất.
- Zero: Nếu số nguyên được truyền là 0, thì mảng sẽ chứa toàn bộ chuỗi dưới dạng một phần tử duy nhất.
- Phủ định: Nếu số nguyên được truyền là số âm thì N phần tử cuối cùng của mảng sẽ bị cắt bỏ và nó sẽ trả về các phần tử còn lại.
Giá trị trả lại
Hàm boom () trả về một mảng có chứa các đoạn chuỗi làm phần tử của nó.
Example
Input:
explode(“ “, “Hello, what is your name?")
Output:
Array
(
[0] => Hello,
[1] => What
[2] => is
[3] => your
[4] => name?
)
Input:
explode(“ “, “Hello, what is your name?", 3)
Output:
Array
(
[0] => Hello,
[1] => What
[2] => is your name?
)
Input:
explode(“ “, “Hello, what is your name?", -1)
Output:
Array
(
[0] => Hello,
[1] => What
[2] => is
[2] => your
Ví dụ sau minh họa hoạt động của hàm boom () để chuyển đổi chuỗi thành mảng trong PHP.
// define a string
$my_string = 'red, green, blue';
// passing "," as the delimiter
$my_array1 = explode(",", $my_string);
// print the array
echo "The converted Sarray is: <br>";
print_r($my_array1); // red, green, blue
?>
)