2011-05-25 59 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

你無法在運行時獲取變量的名稱。不要浪費你的時間。