2014-01-16 4 views
1

У меня есть следующий код:Проблема в том числе вывода массива в другой массив

$tags = get_tags(array('exclude' => 46,5,101,22,122,7,102,15,104,47,105,66,43,123, 'fields' => ids)); 
$tagString = implode (',' , $tags); 
echo $tagString; 

Какие Echos, как ... 10,121,20,36,23,66,24,21,105,76,82,17 , 22,122,43,47,102,5,6,106,8,75,54,38,57,86,56,101,123,95,25,62,16,39,40,69,37,9,42,7,15,41 , 87,73,85,104

Это замечательно. Тем не менее, я на самом деле хочу, чтобы включить результат (который я думаю, это $ tagString) в другом массиве следующим образом ...

$args = array(
    'post_type' => 'post', 
    'posts_per_page' => 12, 
    'paged' => $paged, 
    'tag__in' => array (46, 5, 101, 22, 122, 7, 102, 15, 104, 47, 105, 66, 43, 123), 
    'tag__not_in' => array ($tagString) 
); 

Я попытался удалить скобки добавляя одноместный/двухместный/без кавычек, убирая слово " array 'перед $ tagString для всех комбинаций, но он просто не работает. Когда я вручную создаю ...

'tag__not_in' => array (10,121,20,36,23,24,21,76,82,17,6,106,8,75,54,38,57,86,56,95,25,62,16,39,40,69,37,9,42,41,87,73,85) 

Код работает отлично. Как я могу получить вывод из $ tagString в качестве содержимого массива 'tag__not_in' в скобках? Это возможно?

========

Update для отражения кода Амаль в ...

$tags = get_tags(array('exclude' => 46,5,101,22,122,7,102,15,104,47,105,66,43,123, 'fields' => ids)); 
$tagString = implode (',' , $tags); 
echo $tagString; 

$args = array(
    'post_type' => 'post', 
    'posts_per_page' => 12, 
    'paged' => $paged, 
    'tag__in' => array (46, 5, 101, 22, 122, 7, 102, 15, 104, 47, 105, 66, 43, 123), 
    /*'tag__not_in' => array (10,121,20,36,23,24,21,76,82,17,6,106,8,75,54,38,57,86,56,95,25,62,16,39,40,69,37,9,42,41,87,73,85)*/ 
    'tag__not_in' => explode(',', $tagString) 
); 

ответ

3

$tagString является строкой - просто вставив его в array(...) не будет создавать массив (если не вам используйте eval(), что, как правило, плохая идея). Просто используйте explode() для создания массива из строки, разделенной запятой, например:

'tag__not_in' => explode(',', $tagString) 
+0

Привет, Амал, спасибо, мой друг. Я попробовал (и включил полный код в свой вопрос), но он выводит до 'echo $ tagString; ', а затем ничего. Я старался, как и раньше добавлять скобки и вставлять «массив» перед взрывом и окружая его скобками, но это либо приводит к тому, что код полностью игнорируется, либо ничего не возвращает. Вы можете увидеть что-нибудь еще? Большое спасибо. –

+0

Я думаю, что нашел проблему @Amal - я добавил print_r, и он возвращает следующее ... 'Array ([0] => 10 [1] => 121 [2] => 20 [ 3] => 36 [4] => 23 [5] => 66 [6] => 24 [7] => 21 [8] => 105 [9] => 76 [10] => 82 [11] => 17 [12] => 22 [13] => 122 [14] => 43 ...) ' Мне нужно это, чтобы вернуть список, разделенный запятой, такой как ... ' Array (10,121,20) , 36,23,66,24,21,105,76,82,17,22,122,43 ...) ' т. Е. Потерять ... ' [x] => 'и вместо этого включить запятую? –

Смежные вопросы