将变量变量设置为数组键

时间:2014-06-10 00:41:37

标签: php variable-variables

我不确定如何提出这个问题,但这里有:

$id = 1;
$age = 2;    
$sort = "id"; // or "age";

$arr = array($$sort => 'string'); // so that it becomes 1 => 'string' 
             ^ what goes here?    //      instead of 'id' => string'

这是&字符用于“变量变量”吗?

或者eval

3 个答案:

答案 0 :(得分:2)

关于你问题的主题。使用PHP的逻辑,我可以看到这样做的最好方法是在数组定义之外分配变量变量:

$id = 1;
$age = 2;    
$sort = "id"; // or "age";
    $Key = $$sort;
$arr = array($Key => 'string');

print_r($arr);

哪个输出:

  

数组([1] =>字符串)

虽然,亲自。我建议避免这种方法。最好明确定义密钥,以协助回溯/调试代码。你要做的最后一件事就是通过一个变量变量的迷宫来寻找。特别是,如果它们是动态创建的


修修补补。我有这个;

$arr[$$sort] = "Value";

print_r($arr);

我已经研究了创建函数的方法。我没有看到成功实现这一目标的可行方法。有了我提供的信息(定义了数组定义),希望这会引导你朝着正确的方向发展

答案 1 :(得分:1)

如果您使用:

$arr = array($sort => 'string');

将是id => string,但如果您使用

$arr = array($$sort => 'string');

$sort将为id$$sort将为$id,其值为1,因此:1 => string

答案 2 :(得分:0)

我不会为此使用变量变量,而是将正确的键连接到您需要的值的数组:

$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';

$arr = array($sorts[$sort] => 'string');

An example