In PHP, strings and arrays are two very important concepts. During the development process, we often need to convert strings into arrays to facilitate some operations. PHP provides some built-in functions to achieve such conversion. This article will introduce you to several common methods to convert strings into arrays.
The explode() function is one of PHP’s built-in functions, which can split a string into an array according to the specified delimiter. . The syntax is as follows:
array explode(string $delimiter, string $string [, int $limit = PHP_INT_MAX ]);
Among them, the parameter $delimiter represents the delimiter, $string represents the string to be split, and $limit represents limiting the number of returned arrays.
For example, we have a string $str, which contains multiple elements, each element is separated by commas:
$str = "apple,banana,orange";
We can use the explode() function to convert it into Array, the code is as follows:
$arr = explode(",", $str); print_r($arr);
The output result is as follows:
Array ( [0] => apple [1] => banana [2] => orange )
If we need to split according to multiple delimiters To separate strings, you can use the preg_split() function. This function differs from the explode() function in that it uses regular expressions as delimiters. The syntax is as follows:
array preg_split(string $pattern, string $subject [, int $limit = -1 [, int $flags = 0 ]]);
Among them, the parameter $pattern represents a regular expression, $subject represents the string to be split, $limit represents limiting the number of returned arrays, and $flags represents options.
For example, we have a string $str, which contains multiple elements, each separated by commas, spaces or pipes:
$str = "apple,banana|orange banana pear,melon";
We can use preg_split() The function converts it into an array, the code is as follows:
$arr = preg_split("/[,\s|]+/", $str); print_r($arr);
The output result is as follows:
Array ( [0] => apple [1] => banana [2] => orange [3] => pear [4] => melon )
If we want to split the characters To split a string into an array of single characters, use the str_split() function. The syntax is as follows:
array str_split(string $string [, int $split_length = 1 ]);
Among them, the parameter $string represents the string to be split, $split_length represents the specified length of each element, if its value is 1, the string is split into single characters, Otherwise split the string by the specified length.
For example, we have a string $str, which contains multiple characters:
$str = "abcdefghijklmn";
We can use the str_split() function to convert it into an array, the code is as follows:
$arr = str_split($str, 2); print_r($arr);
The output results are as follows:
Array ( [0] => ab [1] => cd [2] => ef [3] => gh [4] => ij [5] => kl [6] => mn )
If our string is a serialized array, we can use the unserialize() function to Restore to array. The syntax is as follows:
mixed unserialize(string $str);
Among them, the parameter $str represents the string to be decoded, and the return value is the decoded data. Note that the parameters of this function must be serialized strings, otherwise an error will occur.
For example, we have a serialized array $str, we can use the unserialize() function to convert it into an array, the code is as follows:
$str = 'a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"orange";}'; $arr = unserialize($str); print_r($arr);
The output result is as follows:
Array ( [0] => apple [1] => banana [2] => orange )
Summary
This article introduces common methods of converting strings into arrays, including using the explode() function, preg_split() function, str_split() function and unserialize() function. We can choose a suitable method to achieve conversion according to actual needs. In the actual development process, we can also use regular expressions to implement more complex string splitting operations based on specific scenarios.
The above is the detailed content of How to convert php string to array. For more information, please follow other related articles on the PHP Chinese website!