PHP字符串表示为数组到数组
$var = "['test', 'test2', 'test3']";
how do I create a workable array from this in PHP?
I've tried explode($var, ","); but this didn't seem to work, unless something went wrong with that attempt.
$ var =“['test','test2','test3']”;
code> pre>
如何在PHP中创建一个可行的数组? p>
我试过爆炸($ var,“,” ); 但这似乎不起作用,除非该尝试出现问题。 p>
div>
explode($var, ",");
is wrong. explode
needs the first argument to be the delimiter and the second be the string. Replace []
and then explode
-
$var = "['test', 'test2', 'test3']";
$var = str_replace(array('[', ']'), '', $var);
$arr = explode(',', $var);
[akshay@localhost tmp]$ cat test.php
<?php
$var = "['test', 'test2', 'test3']";
print_r( json_decode(str_replace("'","\"",$var)) );
?>
Output
[akshay@localhost tmp]$ php test.php
Array
(
[0] => test
[1] => test2
[2] => test3
)
There is an eval()
function in PHP which converts string into PHP statements. The string has to be valid PHP statement.
In your case "['test', 'test2', 'test3']";
is not valid statement. You can use something similar to below syntax. Please note that the $x is in single quotes as $x in double quotes will return the value.
$var = "['test', 'test2', 'test3'];";
eval('$x = ' . $var);
print_r($x);
I would say that it looks like a job for json_decode, but its not valid json... There is a way to make it valid however:
How to json_decode invalid JSON with apostrophe instead of quotation mark