2014-08-30 70 views
1

我有存储在一个变量数组格式的字符串,我需要将其转换到实际阵列解析阵列格式化字符串作为PHP

这里的Array是我的代码

$hello ="array( 
    'numberposts' => -1, 
    'post_type' => 'post', 
    'meta_query' => array( 
     'relation' => 'AND', 
      array( 
       'key' => 'subject_id', 
       'value' => 'CE6301', 
       'compare' => '=' 
       ), 
      array( 
       'key' => 'regulation', 
       'value' => '2013', 
       'compare' => '=' 
       ), 
      ) 
    )"; 

所以在这里是,我需要为格式化数组转换在PHP

所以打印我的数组时,它应该是这个样子

Array ([numberposts] => -1 [post_type] => post [meta_query] => Array ([relation] => AND [0] => Array ([key] => subject_id [value] => CE6301 [compare] => =) [1] => Array ([key] => regulation [value] => 2013 [compare] => =))) 
数组0

我有什么功能在PHP中使用字符串数组转换成正常的排列

+3

'eval()'。但请务必阅读。 – Martijn 2014-08-30 12:05:11

+0

@Martijn尼斯,我不会想到 – andrew 2014-08-30 12:06:23

+2

保存到JSON之前,那会更好。 – 2014-08-30 12:07:33

回答

1

我不知道你是怎么得到的这个电话,但你可以在这一个使用eval()。只需稍微修改一下字符串即可在最后创建一个有效的数组。示例:

$hello ="array( 
    'numberposts' => -1, 
    'post_type' => 'post', 
    'meta_query' => array( 
     'relation' => 'AND', 
      array( 
       'key' => 'subject_id', 
       'value' => 'CE6301', 
       'compare' => '=' 
       ), 
      array( 
       'key' => 'regulation', 
       'value' => '2013', 
       'compare' => '=' 
       ), 
      ) 
)"; 

$hello = '$hello = ' . $hello . ';'; 
eval($hello); 
echo '<pre>'; 
print_r($hello); 
+0

就像我已经尝试了eval函数,但不工作对我来说,但我复制你的代码,它的工作原理是完美的,无论如何谢谢鬼这是我期望 – musthafa 2014-08-30 12:48:43

+0

@musthafa肯定人很高兴它帮助 – Ghost 2014-08-30 12:49:33

+0

再次,阅读有关'eval()'的一些信息,你可能会创建一个安全问题。 Eval应该只是最后一个选项的解决方案。 – Martijn 2014-08-30 18:04:18