我从数据库中检索的变量是:
$MyVariable="1=>'raju',2=>'rana',3=>'keya',4=>'muaz',5=>'',6=>'Asif'";
我的阵列将是:
$MyArray=array($MyVariable);
现在我想用键打印一个值。像:
echo $MyArray[2];
我的输出应该是:
rana
但输出什么都没有!
答案 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);