3

只是想知道如何轻松拥有两个具有相同关联值的数组键。我目前的代码是:

$arraytest = array(
        'test1', 'test2' => 1,
        'test3', 'test4' => 2,
)

我希望数组正常工作,因此返回以下代码:

$arraytest['test1'] returns 1
$arraytest['test2'] returns 1

ETC

谢谢你的帮助,米

4

3 回答 3

-1
    $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
    )
*/
于 2013-06-04T10:50:30.730 回答
-1

您可以将一个变量的引用关联到两个数组键来模拟这种情况:

例如

$a = 2;

$arraytest = array (
  'test1' => &$a,
  'test2' => &$a
);

这样,当 ' test1 ' 和 ' test2 ' 指向内存中的$a时,您将始终使用数组的 'test1' 和 'test2' 获得“真实” $a 的值。但是请记住,应避免在数组中使用引用,因为这会导致意外的程序行为:

来自 php.net 文档

“但是请注意,数组内的引用具有潜在危险。使用右侧的引用进行正常(非引用)赋值不会将左侧变为引用,但数组内的引用会保留在这些正常的赋值中。这也适用于数组按值传递的函数调用。”

更多细节在这里 =>参考做什么(php.net)

于 2013-06-04T10:23:26.243 回答
-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;
}
于 2013-06-04T10:40:41.133 回答