2011-05-25 63 views
0

我在PHP中有一个数组的数组,我想访问容器数组内的每个数组的变量名(作为一个字符串)。返回父数组内部的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(×3)

我需要输出:array1 array2 array3

有什么建议吗?

+0

$ vname = $ key;每次都被覆盖 – Ibu 2011-05-25 22:15:46

回答

5

无法从使用array($array1, $array2, $array3)创建的数组中检索“名称”array1,array2,array3。那些变量名都不见了。

您可以在阵列的名字,但:
array('array1' => $array1, 'array2' => $array2, 'array3' => $array3)
的快捷方式,这是compact('array1', 'array2', 'array3')

+0

+1 – 2011-05-25 22:17:44

1

使原始数组的关联数组:

$container = array(
    'array1' => $array1, 
    'array2' => $array2, 
    'array3' => $array3 
); 

然后,只需打印出键:

foreach($container as $name => $anArray){ 
    echo $name; //output: array1 array2 array3 
} 
1

我需要输出:数组1数组2 ARRAY3

你无法在运行时获取变量的名称。不要浪费你的时间。