2014-02-19 51 views
-3

我有這個變量字符串如何轉換成數組在PHP

var_dump($values) 

string(191) "array('choices' => array('m' => 'Male', 'f' => 'Female'), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null)" 

我怎樣才能將它轉換爲是數組?

我想這

$farray = is_array($farray)?$farray:[$farray] 

,然後的var_dump給出了這樣的

> array(1) { [0] => string(191) "array('choices' => array('m' => 'Male', 'f' => 'Female'), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null)" } ` 

UPDATE:

我在PHP類通過這個在註釋,然後閱讀它

* @Type(options="array(
    'choices' => array(
     'm' => 'Male', 
     'f' => 'Female' 
    ), 
    'required' => false, 
    'empty_value' => 'Choose your gender', 
    'empty_data' => null 
)" 
+0

'$ values'已經是一個數組而不是字符串 –

+0

@ user3147180請顯示'$ values'來自哪裏。 – xdazz

回答

0

。當然,這是字符串:

$string = "array('choices' => array('m' => 'Male', 'f' => 'Female'), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null)"; 

如果你想數組,你必須聲明它不帶引號:

$array = array('choices' => ...); 
+0

我編輯了這個問題,如果我只是鍵入數組,然後我得到錯誤 – user3147180

3

問題是你是怎麼弄到的$values

從源代碼中獲取數組$values

eval會給你的結果,但它應該避免在大多數情況下。

$arr = eval('return '.$values.';'); 

編輯:

既然你試圖解析註釋,我建議使用一個註解解析庫。 例如:Doctrine Annotations

+0

從PHP手冊:「eval()返回NULL,除非返回在評估的代碼中調用」。正確的代碼是'$ arr = eval('return'。$ values);' – Jojo

+0

@Jojo是的,你是對的,'''也是必須的。 – xdazz

+0

我編輯了問題 – user3147180