2013-08-20 55 views
0

我有看起來像這樣的,並存儲在變量$named_array將數組對象添加到數組php?

Array 
(
    [results] => Array 
     (
      [0] => Array 
       (
        [date] => 2013-15-6 
        [position] => 5 
        [person] => John 
       ) 

      [1] => Array 
       (
        [date] => 2013-15-6 
        [position] => 3 
        [person] => Alex 
       ) 

     ) 

) 

另一個陣列稱爲$post這是調用$posts = get_posts(array(....一個WordPress交對象陣列的陣列對象,然後我有一個foreach每個環路以$交作爲變量。

在我的foreach循環中,我嘗試了以下操作來組合數組,但它不起作用。

$combinedData = array_merge($post, $named_array); 
print_r($combinedData); 

我可以用print_r($ post)看到我的post對象數組;在foreach循環以及named_array中。什麼是將named_array添加到post數組的正確函數?

感謝

+0

取決於您希望最終數組的樣子。你是否試圖將每個帖子附加到「結果」數組? –

+0

@koala_dev我試圖將結果數組追加到後數組,所以後數組有一個嵌套數組是「結果」 – Anagio

+0

你的意思是每個職位將有相同的結果數組? –

回答

1

$posts你提到的是一組對象

$post是一個對象,而不是一個數組,所以如果你想作爲一個新的屬性添加的結果$post不能使用array_merge()

,做正確的做法是:

$post->results = $named_array['results']; 
+0

感謝您的代碼。你可以讓我知道當運行$ post-> results這是否會在post對象中創建一個名爲'results'的數組,然後放置來自named_array ['results']的鍵和值。我基本上是說從命名數組中獲取什麼鍵和值以及哪個數組放入另一個數組中? – Anagio

+1

就像任何其他的分配代碼一樣,比如說你有一個變量'$ x = 1',然後你把另一個變量值設置爲$ x,就像'$ y = $ x'現在$ y保持與$ x相同的值,in在這種情況下,我們向$ post對象添加一個新屬性並將該值設置爲結果數組 –

1

如果$帖子是一個對象,你可以添加一個數組叫這個

$post->results = Array 
    (
     [0] => Array 
      (
       [date] => 2013-15-6 
       [position] => 5 
       [person] => John 
      ) 

     [1] => Array 
      (
       [date] => 2013-15-6 
       [position] => 3 
       [person] => Alex 
      ) 

    ) 

$post->results = $named_array['results'];

0

在這種情況下使用foreach循環內的內的array_merge 是沒有意義的。你使用array_merge來追加第二個數組,覆蓋相同的鍵。您使用foreach進行適用於每個元素的數組操作。

你沒有展示你的$ post數組是怎麼樣的。所以我只能猜測。

$combinedData = array_merge ($post, $named_array); 

已經將命名的數組追加到$ post。也許你想要這個?

array_shift ($named_array, $post); 

它假設post數組看起來像是指定數組的一個元素。

+0

如果這不是您所期望的,請顯示您的$ post數組的示例。 –