2012-03-13 62 views
0

我需要从一个数组中创建一个键名来引用一个不同的变量。数组对字符串的键引用?

像这样:

$keys = array('name' => 'abc'); 

$arr[&$keys['name']] = array(); 

但它不工作:(

是有什么解决办法

+1

什么你究竟想达到什么目的? – Ignas 2012-03-13 21:57:16

+0

为什么参考? – Cfreak 2012-03-13 21:58:16

+0

,因为名称键可能会更改,而我也希望第二个数组自动更改 – thelolcat 2012-03-13 21:58:47

回答

1

离开&远,并确保$ ARR之前设置为一个阵列:

$arr = array(); 
$arr[$keys['name']] = array(); 
4

关联(或数字)索引不能引用

只要做:

$arr[$keys['name']] = array(); 
1

取下参考:

$keys=array("name"=>"abc"); 

$arr=array(); 

$arr[$keys["name"]]=array(); 

var_dump($arr); 

的输出是:

array(1) { 
    ["abc"]=> 
    array(0) { 
    } 
} 
+0

但是如果我更改$ keys ['name']] $ arr中的密钥名称不会更改..这就是为什么我希望它成为第一个参考 – thelolcat 2012-03-13 21:57:59

+0

您不会更改'$ keys [“name” ]'。你还有'$ keys [“name”] ===“abc”;'。 – 2012-03-13 21:58:46

1
<?php 
$arr = array("foo" => "bar", 12 => true); 

echo $arr["foo"]; // bar 
echo $arr[12]; // 1 
?> 

php.net/array !!!有一个文本,因为你提出一个问题,它说,你真的要搜索,因为你需要在谷歌第一个ehtry,第一个php.net < ehtry - 第一个地方寻找4个PHP的提示

1

只要您愿意,您无法使用引用更改数组元素的键。

您需要创建一个新的,并取消了以前:

$key = 'abc'; 
$array[$key] = 'value'; 

// to change the key: 
$new_key = 'def'; 
$array[$new_key] = $array[$key]; 
unset($array[$key]); 

你想要的东西,像下面的代码,但它并没有在PHP中存在不一样的是:

$key = 'abc'; 
$array[&$key] = 'value'; // this is not legal in PHP 
$key = 'def'; // (this was supposed to change the key)