我不知道如何问这个问题,但这里是:
$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
?
我不知道如何问这个问题,但这里是:
$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
?
关于你的问题。使用 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);
我研究了创建函数的方法。我没有看到一种可行的方法来成功地做到这一点。使用我提供的信息(定义数组定义),希望这会引导您朝着正确的方向前进
如果您使用:
$arr = array($sort => 'string');
会的id => string
,但如果你使用
$arr = array($$sort => 'string');
$sort
will beid
和$$sort
will be $id
,它的值是1
,所以:1 => string
我不会为此使用可变变量,而是将正确的键连接到您需要的值的数组:
$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';
$arr = array($sorts[$sort] => 'string');
一个例子。