我不确定如何提出这个问题,但这里有:
$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
?
答案 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');