2014-01-21 15 views
0

我不能肯定我问正确的问题但在这里不用...转换阵列输出在PHP中的字符串,然后添加到另一个阵列

$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', 
'tag__in' => array (46, 5, 101, 22, 122, 7, 102, 15, 104, 47, 105, 66, 43, 123), 
'tag__not_in' => array (comma separated list output by echo $tagString in same format as 'tag__in') 
); 

已使用爆炸,但是当我这样做,它返回建议...

Array ([0] => 10 [1] => 121 [2] => 20 [3] => 36 etc etc) 

我需要失去所有的格式,只是得到逗号分隔列表。

可能我正在接近这个错误,也许我没有道理,但希望有人可以按照我试图实现的目标。任何帮助赞赏。

它链接到这个问题,这让我这么远...... Trouble including array output in another array

更新:

谢谢詹姆斯谁把我放在右边线。这是诀窍...

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

$args = array(
    'post_type' => 'post', 
    'posts_per_page' => 12, 
    'paged' => $paged, 
    'tag__in' => $includeTags, 
    'tag__not_in' => $excludeTags 
); 

我已经改变了数组名称的清晰。

回答

1

我绝对不知道你在问什么。首先,我很惊讶你的原始数组可以工作。你在一个关联数组和一个增量数组之间使用混合,它看起来像。

你可以尝试这样的:

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

exclude本身就是一个数组。然后:

$args = array(
'post_type' => 'post', 
'tag__in' => $excludeArr, 
'tag__not_in' => $excludeArr 
); 

$args阵中没有一个让很多,因为自从innot_in似乎是相同的,但。

如果你只需要$excludeArr作为一个字符串,可以implode(",", $excludeArr);

编辑

看到您的更新后,我编辑我的答案的要求,以显示2个独立的阵列。

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

$args = array(
    'post_type' => 'post', 
    'posts_per_page' => 12, 
    'paged' => $paged, 
    'tag__in' => $includeTags, 
    'tag__not_in' => $excludeTags 
); 
+0

只是在''和'not_in' - 他们基本上是相反的。 'in'是我手动列出的所有ID,因为它们是固定的。 'not_in'会随着新的标签/ ID被添加而改变。因此,我试图通过使用'get_tags'函数来计算它,该函数具有'get_tags'功能,除了我要排除的标记ID(是一个Wordpress函数)。因此'in'包含标签id我列出和'not_in'基本上除了'$ tags' \'$ tagString' –

+0

James以外的所有标签,只是为了让你知道你的代码基本上把我放在正确的路线上,我拥有它完全按照我的需要工作。在此基础上,我会将我的代码添加到问题中,如果您想编辑您的答案,我可以勾选它。我知道我的问题很混乱。 –

+0

@PaulBrown我看到你的更新,但你现在的问题在哪里?你可以添加什么仍然不适合你吗?是否需要排除和包含数组都是字符串? – James

1

块2不能你只需要使用

$args = array(
'post_type' => 'post', 
'tag__in' => $tagString, 
); 
+0

应该有后'$ tagString'没有逗号结束在这个例子中。试图编辑,但我想它没有通过。 – James

+0

@James它完全有效的有一个逗号,不是必需的,但有效的,我们中的一些人喜欢(是编纂不是语法:-)) – 2014-01-21 20:15:00

+0

我想你是对的。我只是测试它。当我完成之前说过它在逗号后面期待键/值时,可能发誓它会向我抛出一个错误。呃,好吧。 – James

0
$includeTags = array(46,5,101,22,122,7,102,15,104,47,105,66,43,123); 
$excludeTags = get_tags(array('exclude' => $includeTags, 'fields' => ids)); 

$args = array(
'post_type' => 'post', 
'posts_per_page' => 12, 
'paged' => $paged, 
'tag__in' => $includeTags, 
'tag__not_in' => $excludeTags 
); 
相关问题