3

我不知道如何问这个问题,但这里是:

$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

4

3 回答 3

3

关于你的问题。使用 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);

我研究了创建函数的方法。我没有看到一种可行的方法来成功地做到这一点。使用我提供的信息(定义数组定义),希望这会引导您朝着正确的方向前进

于 2014-06-10T00:48:29.843 回答
2

如果您使用:

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

会的id => string,但如果你使用

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

$sortwill beid$$sortwill be $id,它的值是1,所以:1 => string

于 2014-06-10T00:50:30.830 回答
0

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

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

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

一个例子

于 2014-06-10T00:48:14.977 回答