2011-07-21 95 views
0

我有三個數組,代表Wordpress中的類別ID,全部格式爲$base_cat_id['term_id']。我想要做的是一個後分配到三個使用下面的函數,這些類別:在PHP中添加數組

wp_set_post_categories($entry['post_id'], $base_cat_id + $generic_n_cat_id + $specific_n_cat_id); 

然而,當我做這個職位只分配給前兩類。我是否使用正確的方法將這些數組添加在一起?

編輯:

我得到這個做以下工作:

$cat_ids = array($base_cat_id['term_id'], $generic_a_cat_id['term_id'], $specific_a_cat_id['term_id']); 
wp_set_post_categories($entry['post_id'], $cat_ids); 

這不是漂亮。但是我發現使用具有相同字符串ID的array_merge不起作用,因爲它會覆蓋這些值。 Union不起作用,因爲我只能使用兩個數組的聯合。請讓我知道如果有更好的方法!

+1

注意'+'數組運算符確實[執行聯盟(http://www.php.net/manual/en/language.operators.array.php)。因此,我相信你的問題在於數組格式。 –

回答

4

使用函數array_merge()。它的參數和你正在合併的數組數量一樣多,它返回合併在一個數組中的數組,因此它返回一個數組。

這樣的:

wp_set_post_categories($entry['post_id'], array_merge($base_cat_id, $generic_n_cat_id, $specific_n_cat_id)); 

警告:你的,如果你的數組是多層次,那麼你可能會得到奇怪的結果。欲瞭解更多信息請查看:http://php.net/manual/en/function.array-merge.php

+0

+1打我的相同的答案。我還添加了一個鏈接到文檔。 –

+0

我剛剛試過這個,帖子只被分配到最後一個類別。看起來array_merge並不是把所有的三個類別放在一起。 – Casey

+0

我最終完成了以下工作來完成這項工作: – Casey

0

我不太清楚什麼是你的陣列中的其它那term_id「,但嘗試使用此:

wp_set_post_categories($entry['post_id'], array_merge($base_cat_id, $generic_n_cat_id, $specific_n_cat_id)); 
+0

所有變量都有「term_id」。 – Casey