Если вы можете хранить свои переменные следующим образом:
$array = array(
'a' => 'apple',
'b' => 'banana',
'c' => 'carrot',
'd' => 'date',
'e' => 'elephant');
Вы можете использовать функцию key
, чтобы получить индекс / ключ для текущего элемента массива внутри любого типа цикла, см. # 1,или используйте синтаксис key => value
в цикле foreach()
, см. # 2:
<?php
$array = array(
'a' => 'apple',
'b' => 'banana',
'c' => 'carrot',
'd' => 'date',
'e' => 'elephant');
/* #1 */
foreach($array as $value) {
/* get the key for the item at the cursor position of the array */
$key = key($array);
print "{$key} = {$value}<br>";
/* move the cursor to the next item in the array */
next($array);
}
/* #2 */
foreach($array as $key => $value) {
print "{$key} = {$value}<br>";
}
?>
Если вы просто пытаетесь получить имя переменной, вы не можете хранить значения в массиве и поддерживатьИмена переменных, когда вы помещаете значения в массив, они теряют имя переменной.
Вне массива вы можете использовать следующее решение (из http://www.php.net/manual/en/language.variables.php#76245):
<?
$myVarName = "myValue";
echo var_name($myVarName) . " = {$myVarName}";
function var_name(&$var, $scope=0)
{
$old = $var;
if (($key = array_search($var = 'unique'.rand().'value', !$scope ? $GLOBALS : $scope)) && $var = $old) return $key;
}
?>