Добавление массивов в PHP - PullRequest
0 голосов
/ 21 июля 2011

У меня есть три массива, которые представляют идентификаторы категорий в Wordpress, все в формате $base_cat_id['term_id'].Я хочу назначить сообщение трем из этих категорий, используя следующую функцию:

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);

Это не красиво.Но я обнаружил, что использование array_merge с тем же идентификатором строки не работает, поскольку оно перезаписывает значения.Объединение также не работает, так как я могу использовать объединение только для двух массивов.Пожалуйста, дайте мне знать, если есть лучший способ!

Ответы [ 2 ]

4 голосов
/ 21 июля 2011

Используйте функцию 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 голосов
/ 21 июля 2011

Я не совсем уверен, что в вашем массиве, кроме 'term_id', но попробуйте использовать это:

wp_set_post_categories($entry['post_id'], array_merge($base_cat_id, $generic_n_cat_id, $specific_n_cat_id));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...