只是想知道如何容易地有两个数组键与相同的联想值。我当前的代码是:具有相同值的两个数组键
$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)} –