2011-03-01 125 views
1
Array ([0] => id [1] => 4) 
Array ([0] => first_name [1] => F_NAME) 
Array ([0] => last_name [1] => L_NAME) 
Array ([0] => email [1] => EMAIL) 

嘿訪問信息,從PHP陣列

我不知道我怎麼可以創建一個存儲的實際信息存儲的信息的類型來命名變量。例如,上述數組中有4個數據。我想有:

$id = 4; 
$first_name = 'F_NAME'; 
$last_name = 'L_NAME'; 
$email = 'EMAIL'; 

我知道我可以使用雙$創建與另一個變量的名稱的變量,但不知道如何與這個陣列結構訪問數據。任何幫助表示讚賞!

感謝

回答

1

我認爲你正在尋找這樣的:

$a = array(
    array('id', '4'), array('first_name', 'F_NAME'), // ... 
); 

foreach ($a as $b) 
{ 
    $$b[0] = $b[1]; 
} 

但是,這是一個非常醜陋的事情,我會建議重新考慮更高的戰略一點。

+0

有關更好的存儲和訪問此類數據(關聯數組)的更好方法,請參閱mailo的答案。 – Matthew 2011-03-01 17:46:04

0

您可以使用PHP extract,但僅當id => 4關聯是在數組中,而不是您現在擁有的。

$var_array = array("color" => "blue", 
        "size" => "medium", 
        "shape" => "sphere"); 
extract($var_array, EXTR_PREFIX_SAME, "wddx"); 

echo "$color, $size, $shape, $wddx_size\n"; 

但我認爲,正確的做法是改變一點點你的陣列,並用它喜歡:$data['first_name'],雖然 - 有趣的問題。

+0

這隻適用於一維陣列。 OP有一個2-D數組。 – 2011-03-01 17:36:39

+0

這是真的,但他可以遍歷數組使extract()的1-D無論如何我提供了一個更好的解決方案建議。 – mailo 2011-03-01 17:39:44