【问题标题】:Variables into array - $array[$var_name] = $var;变量放入数组 - $array[$var_name] = $var;
【发布时间】:2011-09-19 15:26:33
【问题描述】:

我想知道这样的事情是否可行:

$var1 = 1; $var2 = 2;
function varsToArray($param1, $param2...);

它返回这样的数组

array([var1] => 1, [var2] => 2).

简单地说,我希望数组键与变量名相同。问题是我不知道如何将变量名作为字符串作为键(如果可能的话当然......)。

【问题讨论】:

  • 好吧,因为这不是有效的 PHP 语法,显然无法确定您的意思。描述你的目标。
  • Create array names based on variable value 的可能重复项...请在提问前使用搜索。
  • @Felix Kling,不,似乎没有完全相同的问题
  • 那么您没有正确描述您的问题...接受的答案将 parameter 名称放入数组中,而不是 variable 名称,并且我想知道为什么在这种情况下会使用反射。
  • 不,我的意思是变量。一段时间后注意到 Yoshi 的解决方案将参数名称作为键,而不是变量名称。对不起,我的错。我举的例子不好,我改一下

标签: php arrays variables names


【解决方案1】:

您想使用compact function methinks。

【讨论】:

  • 当您将变量名称作为字符串传递时,compact 有效,所以 compact("var1", "var2");我希望像 compact($var1, $var2) 一样通过。在这种情况下@Yoshi 的解决方案工作正常:D
  • @f1ames:之所以有效,是因为函数的参数被称为$var1$var2。如果您调用foo($bar, $baz),输出仍将包含var1var2。我认为将变量名作为字符串传递是唯一有用的解决方案。
【解决方案2】:

内置的 PHP 函数 compact() 可以做到这一点。

顺便说一句:我将继续假设而不是:

function $varsToArray($var1, $var2...);

你的意思是:

function varsToArray($var1, $var2...);

请注意美元符号已被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多