两个具有相同值的数组键

时间:2013-06-04 10:16:08

标签: php arrays key associative

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

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

我想让数组工作,以便以下代码返回:

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

感谢您的帮助,m

4 个答案:

答案 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
    )
*/