在变量中插入一个变量,该变量包含数组键和值

时间:2015-05-21 18:28:53

标签: php arrays

我从数据库中检索的变量是:

$MyVariable="1=>'raju',2=>'rana',3=>'keya',4=>'muaz',5=>'',6=>'Asif'";

我的阵列将是:

$MyArray=array($MyVariable);

现在我想用键打印一个值。像:

echo $MyArray[2];

我的输出应该是:

rana

但输出什么都没有!

2 个答案:

答案 0 :(得分:0)

eval()具有安全隐患,但这就是这段部分废话如何变成实际数组:

eval('$MyArray = array('.$MyVariable.');');
print_r($MyArray);

您应该将每个值存储为另一个表中的相关行而不是数组数据。

答案 1 :(得分:0)

您的变量$myVariable是一个由数组键组成的字符串。

如果你把它写成一个数组,它可以正常工作:

$myvariable = array(
1 => 'raju',
2 => 'rana',
3 => 'keya'
// More entries
);

如果这是函数的输出,您可能希望使该函数输出JSON,因为只有一个json_decode调用才能解析该数组。

如果您仍想解析此问题,则必须进行更高级的字符串解析:

$data = array();
$bits = preg_match_callback("/(\d+)=>'(.*?)'(\,)?/", function($matches) use ($data){
    $data[$matches[1]] = $matches[2];
}, $MyVariable);