2014-10-06 119 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

相關問題