2014-08-30 101 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