将变量变量设置为数组键

d-_*_*_-b 5 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'
Run Code Online (Sandbox Code Playgroud)

这就是&字符的用途吗,“变量”?

或者可能eval?

Dar*_*ill 5

关于你的问题的主题。根据 PHP 的逻辑,我看到完成此操作的最佳方法是在数组定义之外分配变量:

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

print_r($arr);
Run Code Online (Sandbox Code Playgroud)

哪个输出:

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

虽然,就个人而言。我建议避免使用这种方法。最好明确定义您的键,以协助回溯/调试代码。你最不想做的事情就是浏览变量的迷宫。特别是,如果它们是动态创建的


修补。我有这个;

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

print_r($arr);
Run Code Online (Sandbox Code Playgroud)

我研究了创建函数的方法。我没有看到成功做到这一点的可行方法。根据我提供的信息(从数组定义中定义),希望这能引导您走向正确的方向