将变量variable设置为数组键


set variable variable as array key

我不知道该怎么问这个问题,但是下面是:

$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);

输出:

Array ([1] => string)

然而,

个人。我建议避免这种方法。最好显式地定义键,以帮助反向跟踪/调试代码。你最不想做的事,就是在一堆变量-变量的迷宫中寻找。特别是,如果它们是动态创建的


修修补补。我知道了;

$arr[$$sort] = "Value";
print_r($arr);

我已经研究了创建函数的方法。我看不出有什么可行的方法可以成功地做到这一点。有了我提供的信息(定义超出数组定义),希望这将引导您在正确的方向

如果使用:

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

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

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

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

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

$sorts = array('id' => 1, 'age' => 2);
$sort = 'id';
$arr = array($sorts[$sort] => 'string');

一个例子。