如何创建一个数组,其中键名与分配给数组的$变量名称相同?

3

我正在分配一个数组,其中包含具有不同名称的$variables(变量),这些变量具有一些值,例如:

array($one, $two, $three);

现在我正在寻找一种方法,是否有任何方法可以直接将上述数组分配给与变量名相同的键名,最后我想让这个数组变成:

array(
      "one" => $one, 
      "two" => $two, 
      "three" => $three
)

如果在将数组与变量分配时可以实现这一点,那对我来说会非常有用,因为我可以轻松地使用extract()提取此数组,而无需打开此数组并将这些值分配给$variable名称,如果有任何函数可以实现这一点,那就太好了,请帮助我,如果有人知道的话。
2个回答

4

compactextract的反义词。使用方法如下:

$array = compact ('one', 'two', 'three');

这将查找名为'one'、'two'、'three'的变量,并且正好做到了您要寻找的内容。


这就是我正在寻找的,谢谢 @Lorenz Meyer - lazyCoder

0

这里有一个限制,你必须添加两次get_defined_vars();

PHP代码演示

<?php

$someVariable=1;
$someVariable=2;
$someVariable=3;
$definedOld=get_defined_vars();//this will bring all variables defined till now.

$one="test1";
$two="test2";
$three="test3";

$definedNew = get_defined_vars();//this will bring all variables defined till now.

$variables=array_diff($definedNew,$definedOld);//finding the difference
print_r($variables);

我知道这可以通过一些逻辑来实现,但我正在寻找一个函数。 - lazyCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接