只是想知道如何轻松拥有两个具有相同关联值的数组键。我目前的代码是:
$arraytest = array(
'test1', 'test2' => 1,
'test3', 'test4' => 2,
)
我希望数组正常工作,因此返回以下代码:
$arraytest['test1'] returns 1
$arraytest['test2'] returns 1
ETC
谢谢你的帮助,米
只是想知道如何轻松拥有两个具有相同关联值的数组键。我目前的代码是:
$arraytest = array(
'test1', 'test2' => 1,
'test3', 'test4' => 2,
)
我希望数组正常工作,因此返回以下代码:
$arraytest['test1'] returns 1
$arraytest['test2'] returns 1
ETC
谢谢你的帮助,米
$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
)
*/
您可以将一个变量的引用关联到两个数组键来模拟这种情况:
例如
$a = 2;
$arraytest = array (
'test1' => &$a,
'test2' => &$a
);
这样,当 ' test1 ' 和 ' test2 ' 指向内存中的$a时,您将始终使用数组的 'test1' 和 'test2' 获得“真实” $a 的值。但是请记住,应避免在数组中使用引用,因为这会导致意外的程序行为:
来自 php.net 文档
“但是请注意,数组内的引用具有潜在危险。使用右侧的引用进行正常(非引用)赋值不会将左侧变为引用,但数组内的引用会保留在这些正常的赋值中。这也适用于数组按值传递的函数调用。”
更多细节在这里 =>参考做什么(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;
}