Reputation: 2875
$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.
Upvotes: 1
Views: 59
Reputation: 2219
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
Upvotes: 1
Reputation: 1
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);
Upvotes: 0
Reputation: 16997
[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
)
Upvotes: 1
Reputation: 31749
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);
Upvotes: 3