我有一个这样的字符串:
$string = '[miniTrack, boxTrack]'
我想把它变成一个像这样的变量数组:
$array = [$miniTrack, $boxTrack]
;
这样我就可以通过变量执行循环和迭代。并访问他们引用的变量。
我尝试了eval,但我无法弄清楚如何将其转换为PHP变量。
I KNOW THAT THIS IS NOT IDEAL, THE STRUCTURE OF THE DATABASE THIS IS PULLING FROM CAN'T BE ADJUSTED UNFORTUNATELY
答案 0 :(得分:1)
您的问题开始异常,因为您显示的数组包含以逗号分隔的单个字符串,而不是单个字符串的数组。
您可以尝试以下内容:
$arr = [];
$string = ['miniTrack, boxtrack'];
//split the one string into an array, trimming spaces
$vars= array_map('trim', explode(',', $string[0]));
foreach($vars as $var) {
$arr[] = $var; //add the var to the array
}
print_r($arr);
Array
(
[0] => miniTrack
[1] => boxtrack
)
如果您需要为每个项目创建变量,您可以创建"变量":
foreach($vars as $var) {
$my_var = $$var; //variable variable
}
答案 1 :(得分:1)
它应该像以下一样简单:
preg_match_all('~(\w+)~','[miniTrack, boxTrack]', $matches);
foreach($matches[1] as $var)
{
print $$var;
}
答案 2 :(得分:0)
您可以将字符串转换为此类型的数组。它可能不太理想,但您可以试试这个。
$string = '[miniTrack, boxTrack]';
$string = str_replace(array('[',']'),array('', '' ), $string);
$array = explode(',',$string);
在这里,您可以根据需要迭代数组。