只是想知道如何容易地有兩個數組鍵與相同的聯想值。我當前的代碼是:具有相同值的兩個數組鍵
$arraytest = array(
'test1', 'test2' => 1,
'test3', 'test4' => 2,
)
我想要的陣列工作,所以下面的代碼返回:
$arraytest['test1'] returns 1
$arraytest['test2'] returns 1
等
感謝您的幫助,男
只是想知道如何容易地有兩個數組鍵與相同的聯想值。我當前的代碼是:具有相同值的兩個數組鍵
$arraytest = array(
'test1', 'test2' => 1,
'test3', 'test4' => 2,
)
我想要的陣列工作,所以下面的代碼返回:
$arraytest['test1'] returns 1
$arraytest['test2'] returns 1
等
感謝您的幫助,男
你可以將一個變量的引用關聯到兩個數組鍵以模擬這種情況:
例如
$a = 2;
$arraytest = array (
'test1' => &$a,
'test2' => &$a
);
通過這種方式,爲 'test1的' 和 'test2的' 點$一個在內存中,你總是會有的 「真實」 價值$ A使用 '測試1' 和「測試2 '陣列。 但是記住使用數組的引用應該避免,因爲這可能會導致意外的程序行爲:但是
從php.net文檔
「請注意,這裏面數組引用是潛在的危險 。在右側引用 引用進行正常(非引用)賦值不會將左側變爲 引用,但是數組中的引用保留在這些正常的 賦值中。這也適用於數組爲通過價值傳遞 「。
更多詳細的=>What References Do (php.net)
$arr = asign(array('test','test1'),'2');
//print_r($arr);
/*
Array
(
[test] => 2
[test1] => 2
)
*/
$arr = asign(array('test2','test3'),'3',$arr);
print_r($arr);
/*
Array
(
[test] => 2
[test1] => 2
[test2] => 3
[test3] => 3
)
*/
function asign($key,$val,$arr=array()){
foreach($key AS $v){
$arr[$v]=$val;
}
return $arr;
}
$a =array_merge(
array_fill_keys(array('test','test2'), '1'),
array_fill_keys(array('test3','test4'), '2')
);
print_r($a);
/*
Array
(
[test] => 1
[test2] => 1
[test3] => 2
[test4] => 2
)
*/
請你停下來發布可怕的代碼? – user544262772
這是不可能的,你不能對你有數組檢查使用相同的密鑰多個值這裏http://stackoverflow.com/問題/ 16871279/combine-array-in-php/16871376#16871376 – Fabio
@Aquillo問題發生了變化,請檢查編輯 – Fabio
@ mary13123123你測試過了嗎,var_dump($ arraytest);給出 array(4){[0] => string(5)「test1」[「test2」] => int(1)[1] => string(5)「test3」[「test4」] => int (2)} –