PHP:数组变量的输出名称,用于其中一个元素

时间:2012-03-04 15:26:42

标签: php arrays

在下面的代码中,有没有办法从 中获取相同数组的数组名称,因此不必多次输入?

$awesome_array = array(
    'fruit'=>'apple',
    'name'=>'awesome_array', // Name of array here
    'you_are_an'=>'awesome_array' // Name goes here too
);

就是这样。

3 个答案:

答案 0 :(得分:3)

不可能直接。但是,您可以通过在定义数组之前定义名称来实现此行为。

以下是3种方法。可以有更多。但我现在不能回想起任何其他方式。

数组名称是字符串

$array_name = 'awesome_array';
$$array_name = array(
    'fruit'=>'apple',
    'name'=>$array_name, // Name of array here
    'you_are_an'=>$array_name // Name goes here too
);

最常见的方式

佩卡在评论中提醒我。

$awesome_array = array('fruit'=>'apple');
$awesome_array['name'] = 'awesome_array';
$awesome_array['you_are_an'] = 'awesome_array';

动态收集名称

$awesome_array = array('fruit'=>'apple');
// dynamically extracting the name of last defined variable
list($name) = array_slice(array_keys(get_defined_vars()), -1 , 1);
$awesome_array['name'] = $name;
$awesome_array['you_are_an'] = $name;

答案 1 :(得分:0)

$array_name = "awesome_array";
$$array_name = array(
    'fruit'=>'apple',
    'name'=> $array_name  // Name of array here
    'you_are_an'=>$array_name  // Name goes here too
}

答案 2 :(得分:0)

我不确定我是否理解了这个问题,但您可以使用变量:

$var = 'awesome_array';
$$var = array(
    'fruit'=>'apple',
    'name'=>$var, // Name of array here
    'you_are_an'=>$var // Name goes here too
);