2014-10-06 120 views
0

来自JavaScript背景,我有一点点困难插入一个php数组到另一个数组。如何插入一个php数组到另一个数组

如果我有以下几点:

$common_properties = array(
    'foo' => 'bar', 
    'eats' => array(
     'apples' => true, 
     'oranges' => true 
    ) 
); 

$one = array(
    'name' => 'one', 
    'desc' => 'Lorem' 
); 

$two = array(
    'name' => 'two', 
    'desc' => 'Ipsum' 
); 

我怎样才能使从$one$two$common_properties数组访问?我需要将结果数组作为参数传递给函数。出于某种原因,array_merge导致错误。

期望的结果应该是,例如:

$one = array(
    'name' => 'one', 
    'desc' => 'Lorem' 
    'foo' => 'bar', 
    'eats' => array(
     'apples' => true, 
     'oranges' => true 
    ) 
); 
+0

你能更清楚地知道你最终的期望结果是什么?你尝试了什么,你的错误是什么? – 2014-10-06 08:16:39

+0

@MihaiIorga - 是的,我的不好 - 请看所需结果的修正。 – verism 2014-10-06 08:32:54

+0

你是什么意思'array_merge()'导致了一个错误,我认为你可以直接合并它们使用该函数 – Ghost 2014-10-06 08:41:06

回答

2
$one = array_merge($one, $common_properties); 

print_r($one); 
/* ⇨ 
Array 
(
    [name] => one 
    [desc] => Lorem 
    [foo] => bar 
    [eats] => Array 
     (
      [apples] => 1 
      [oranges] => 1 
     ) 

) 
*/ 
+0

啊 - 我以前曾试图将整个array_merge函数作为参数传递。 PHP真的不像javascript那样宽容。 – verism 2014-10-06 08:43:05

2

你可以做以下补充$common_properties$one$two

$one['commonProperties'] = $common_properties;

$two['commonProperties'] = $common_properties;

然后,您可以通过两个阵列($one$two)像这样function_name($one, $two)

+0

还值得一提的是,如果你需要改变$ common_properties中的数组属性,并让它们反映全局然后你可能希望通过引用进行分配。按价值分配适用于只读或不重要的情况,如果$ 1和$ 2具有不同的值,但是如果状态需要保持同步而不是=并且比= – GordonM 2014-10-06 08:29:54

+0

更好的选择谢谢 - 但不幸的是这不会产生期望的结果。请参阅编辑和我需要的输出。 – verism 2014-10-06 08:37:43

相关问题