2012-03-13 57 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)