Home > Article > Backend Development > How to convert php string to object array
In the process of developing a website, we often need to convert strings into object arrays to facilitate data operations. In PHP, there are many ways to achieve this function, and this article will introduce one of them to you.
1. Use the json_decode function
PHP provides the json_decode function, which can convert JSON format strings into objects or arrays. The following is a simple example:
<?php $str = '{"name": "Tom", "age": 18}'; $obj = json_decode($str); print_r($obj); ?>
The output is:
stdClass Object ( [name] => Tom [age] => 18 )
As you can see, the json_decode function converts the JSON string into an object named stdClass.
If you want to convert it into an array, you can add the second parameter true to the function, as shown below:
<?php $str = '{"name": "Tom", "age": 18}'; $arr = json_decode($str, true); print_r($arr); ?>
The output result is:
Array ( [name] => Tom [age] => 18 )
You can see Now, the json_decode function converts the JSON string into an associative array.
2. Split the string by lines and convert it into an array
If your string is not in JSON format, you can split it by lines first and then process it line by line. The following is a simple example:
<?php $str = "Tom,18\nJerry,22\n"; $arr = explode("\n", $str); foreach($arr as $item) { $tmp = explode(",", $item); $result[] = array( "name" => $tmp[0], "age" => $tmp[1] ); } print_r($result); ?>
The output result is:
Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 22 ) )
As you can see, after splitting the string by lines, it is processed line by line and converted into an object containing multiple objects. array.
3. Use regular expressions
If your string format is more complex, or you need to perform more complex processing on the string, you can use regular expressions. The following is a simple example:
<?php $str = "name=Tom&age=18&gender=male"; preg_match_all("/(\w+)=([^&]+)/", $str, $matches); foreach($matches[1] as $key => $value) { $result[$value] = $matches[2][$key]; } print_r($result); ?>
The output result is:
Array ( [name] => Tom [age] => 18 [gender] => male )
As you can see, the query string is converted into an associative array using regular expressions.
The above are three methods of converting strings into object arrays. Readers can choose the appropriate method according to the actual situation.
The above is the detailed content of How to convert php string to object array. For more information, please follow other related articles on the PHP Chinese website!