只是想知道如何轻松拥有两个数组键,相同的关联值。我目前的代码是:
$arraytest = array(
'test1', 'test2' => 1,
'test3', 'test4' => 2,
)
我想让数组工作,以便以下代码返回:
$arraytest['test1'] returns 1
$arraytest['test2'] returns 1
等
感谢您的帮助,m
答案 0 :(得分:0)
您可以将一个变量的引用与两个数组键相关联,以模拟这种情况:
e.g。
$a = 2;
$arraytest = array (
'test1' => &$a,
'test2' => &$a
);
这样,当' test1 '和' test2 '指向内存中的 $ a 时,您将始终拥有“真正的“$ a使用'test1'和'test2'的数组。 但请记住,应避免使用数组中的引用,因为这可能会导致意外的程序行为:
来自php.net文档
“但请注意,数组内部的引用是可能的 危险的。使用a执行正常(不是通过引用)赋值 右侧的参考不会将左侧变为a 引用,但数组内的引用保留在这些正常情况下 分配。这也适用于数组所在的函数调用 通过价值传递。“
此处有更多详情=> What References Do (php.net)
答案 1 :(得分:-2)
$arr = array(
'test1' => 1,
'test2' => 1,
'test3' => 2,
'test4' => 2,
);
答案 2 :(得分:-2)
$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;
}
答案 3 :(得分:-2)
$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
)
*/