Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将值数组转换为变量数组_Php_Arrays - Fatal编程技术网

Php 将值数组转换为变量数组

Php 将值数组转换为变量数组,php,arrays,Php,Arrays,更新 在得到初步反馈,我的问题不清楚之后,我决定重新开始,用更多的上下文和更清晰的细节来提问。看 很抱歉搞混了 原始问题 我想动态地打开关联数组: $array = [ 'key' => 'AX-2NV', 'id' => 2 ] 进入变量数组: [$key,$id] // where $key='AX-2NV' and $id=2 当我无法控制输入数组时。使用extract 问题是,当我事先不知道变量名或输入数组大小时,如何在数组中获取结果变量 这可能无关紧要,

更新

在得到初步反馈,我的问题不清楚之后,我决定重新开始,用更多的上下文和更清晰的细节来提问。看

很抱歉搞混了

原始问题

我想动态地打开关联数组:

$array =
[
    'key' => 'AX-2NV',
    'id' => 2
]
进入变量数组:

[$key,$id] // where $key='AX-2NV' and $id=2
当我无法控制输入数组时。使用
extract

问题是,当我事先不知道变量名或输入数组大小时,如何在数组中获取结果变量

这可能无关紧要,但目标是调用函数
call\u user\u func\u array
,并将数组
[$key,$id]
作为我调用的函数的参数传递给它。我考虑过简单地做

call_user_func_array($function,array_values($array));

但是我仍然需要这些变量的句柄来进行进一步处理,因此仅使用这些值并继续前进不是一个选项。

您可以使用
array\u keys()创建一个数组,其中包含来自另一个数组的所有键的列表。


extract()
可能有安全隐患,我希望这是某种假设性问题,因为否则您应该从数组本身获取所需的数据,而不是将其项转换为全局变量。

非常奇怪的想法,但是

foreach ($array as $_k => $_v) {
    $$_k = $_v;
}
所以。。。你的

$array =
[
    'key' => 'AX-2NV',
    'id' => 2
]
将是

$key = 'AX-2NV';
$id = 2;
编辑

我明白了……)


这就是您想要的。

为什么不能使用您首先创建的
$array
?我看不出提取它有什么意义。你说的进一步处理是什么意思?你可以轻松地在数组中循环并做任何你想做的事情。问题不清楚!!!我很抱歉。让我重写这个问题,使问题更清楚。我会回来的。我更清楚地问了同样的问题。我希望我很抱歉。让我重写这个问题,使问题更清楚。我会回来的。我希望在“谢谢”节目中更清楚地问了同样的问题。这并不能解决我的问题,但它鼓舞了我去寻找解决方案。从数组中取出变量对我来说不是一件棘手的事情
extract($array)
还将创建
$key
$id
变量,正如我在OP中所述。不过,您帮助我认识到的是,即使我不知道这些变量的名称,也可以处理它们。在您创建的循环中,我可以将对
$$\k
的引用存储在数组中,然后使用数组索引访问它。谢谢。我很高兴这能帮助你)你的编辑不是吗。在发布之前,我已经考虑了
array\u值
(参见我原始Q中的最后一行代码)。这是我的错b/c我没有很好地解释我想做的事情。我对我的问题()贴了一个更好的解释,但是你的回答让我的思路正确。我回答了
$key = 'AX-2NV';
$id = 2;
$newArray = array_values($array)