我在PHP中有一个数组数组,我想访问容器数组中每个数组的变量名(作为字符串)。
拥有:
$container = array($array1, $array2, $array2);
需要:
foreach ($container as $anArray) {
{...some other code...}
echo variable_name($anArray); // output: array1 array2 array3
}
我正在尝试运行foreach循环来输出每个数组的名称,函数如下(在PHP手册中建议):
function vname(&$var, $scope=false, $prefix='unique', $suffix='value') {
if($scope) $vals = $scope;
else $vals = $GLOBALS;
$old = $var;
$var = $new = $prefix.rand().$suffix;
$vname = FALSE;
foreach($vals as $key => $val) {
if($val === $new) $vname = $key;
}
$var = $old;
return $vname;
}
但可以理解的是,该函数只输出:anArray(x3)
我需要输出:array1 array2 array3
有什么建议吗?
无法从使用array($array1, $array2, $array3)
创建的数组中检索"名称"array1
、array2
、array3
。那些变量名已经不见了。
您可以使数组键成为名称:array('array1' => $array1, 'array2' => $array2, 'array3' => $array3)
这方面的快捷方式是compact('array1', 'array2', 'array3')
。
使原始数组成为关联数组:
$container = array(
'array1' => $array1,
'array2' => $array2,
'array3' => $array3
);
然后只需打印出密钥:
foreach($container as $name => $anArray){
echo $name; //output: array1 array2 array3
}
我需要输出:array1 array2 array3
在运行时无法获取变量的名称。不要浪费你的时间。