Php 字符串在变量中写入和保存时是不同的
好的,我有一个关于字符串的令人困惑的问题。我使用循环构造字符串,并使用Php 字符串在变量中写入和保存时是不同的,php,Php,好的,我有一个关于字符串的令人困惑的问题。我使用循环构造字符串,并使用print\r($exclude)查看结果。字符串的输出为: 101102135 。。。这是正确的。然后我尝试在WordPress查询的参数数组中使用$exclude: 'terms'=>数组($exclude), 简言之,这应该排除上述ID类别中的帖子。但这并没有达到预期效果除非如果我像这样直接写数字,它会起作用: 'terms'=>数组(101102135), 那么,$exclude-字符串和手动写入数字之间的区别是什么
print\r($exclude)
查看结果。字符串的输出为:
101102135
。。。这是正确的。然后我尝试在WordPress查询的参数数组中使用$exclude
:
'terms'=>数组($exclude),
简言之,这应该排除上述ID类别中的帖子。但这并没有达到预期效果除非如果我像这样直接写数字,它会起作用:
'terms'=>数组(101102135),
那么,
$exclude
-字符串和手动写入数字之间的区别是什么 您需要使用php的explode函数
请尝试以下代码:
'terms' => explode(',', $exclude)
有关更多详细信息,请参阅此链接-您需要使用php的explode功能 请尝试以下代码:
'terms' => explode(',', $exclude)
有关更多详细信息,请参阅此链接-
'terms' => array($exclude)
您的术语
数组如下所示:
Array
(
[0] => 101,102,135
)
解决方案
'terms' => explode(',', $exclude)
$exclude
变成
Array
(
[0] => 101
[1] => 102
[2] => 135
)
您正在将字符串分配给数组中的第0个键,而您应该传递数组元素
将根据传递的分隔符(在您的情况下为逗号)将字符串拆分为数组。执行此操作时
'terms' => array($exclude)
您的术语
数组如下所示:
Array
(
[0] => 101,102,135
)
解决方案
'terms' => explode(',', $exclude)
$exclude
变成
Array
(
[0] => 101
[1] => 102
[2] => 135
)
您正在将字符串分配给数组中的第0个键,而您应该传递数组元素
将根据传递的分隔符(
)将字符串拆分为数组(在您的情况下为逗号)。在您的情况下,如果打印\r
数组($exclude)
它会给
Array
(
[0] => 101,102,135
)
你需要的是
Array
(
[0] => 101,
[1] => 102,
[2] => 135
)
即,将这些数字作为数组元素的数组
所以只要做'terms'=>分解(',',$exclude)
就可以了。。。
如果您打印数组($exclude)
它会给
Array
(
[0] => 101,102,135
)
你需要的是
Array
(
[0] => 101,
[1] => 102,
[2] => 135
)
即,将这些数字作为数组元素的数组
所以只要做'terms'=>分解(',',$exclude)
就可以了。。。
'terms'=>explode(',',$exclude)
不同之处在于,当您使用array($exclude)
其中$exclude
是一个字符串时,它将创建一个以该字符串作为项的数组,而不是以数字作为项的数组。正如您所说,$exclude
是一个字符串,而array(101102135)
是一个数字数组。它们不是一回事@Federkun的建议应该能解决这个问题谢谢!显然我需要更多的了解。工作:)“术语”=>分解(“,”,$exclude)
区别在于当你使用数组($exclude)时
如果$exclude
是一个字符串,它将创建一个数组,将该字符串作为一个项,而不是数字数组。正如你所说,$exclude
是一个字符串,而数组(101102135)
是一个数字数组。它们不是一回事。@Federkun的建议应该会解决的,谢谢!显然,我需要更多地了解这一点。作品:)当然可以,但“你可以在9分钟内接受答案”:o)你至少应该写下你为什么需要这样做哇,在发帖后一分钟内请求接受。当然可以,但“你可以在9分钟内接受答案”:o)你至少应该写下你为什么需要这样做哇,在发帖后一分钟内请求接受。