2011-03-01 74 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