【问题标题】:Trouble including array output in another array在另一个数组中包含数组输出时出现问题
【发布时间】:2014-02-05 19:05:54
【问题描述】:

我有以下代码:

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

这与...相呼应 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)
);

我尝试删除添加单/双/无引号的括号,在所有组合中删除 $tagString 前面的单词“array”,但它不起作用。当我手动创建...

'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' 数组的内容?这可能吗?

========

更新以反映 Amal 的代码...

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

【问题讨论】:

    标签: php arrays variables


    【解决方案1】:

    $tagString 是一个字符串——简单地将它插入array(...) 不会创建一个数组(除非你使用eval(),这通常是个坏主意)。只需使用 explode() 从逗号分隔的字符串创建一个数组,如下所示:

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

    【讨论】:

    • 嗨,Amal,谢谢我的朋友。我已经尝试过了(并在我的问题中包含了完整的代码块),但它输出到echo $tagString;,然后什么也没有。我已经尝试过像以前一样添加括号并在爆炸之前插入array 并用括号括起来,但这会导致代码被完全忽略或不返回任何内容。你还能看到那里的其他东西吗?非常感谢。
    • 我想我找到了问题@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] => 并包含一个逗号?
    猜你喜欢
    • 2020-02-27
    • 2013-05-06
    • 1970-01-01
    • 2022-11-26
    • 2020-03-18
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多