Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字符串在变量中写入和保存时是不同的_Php - Fatal编程技术网

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)你至少应该写下你为什么需要这样做哇,在发帖后一分钟内请求接受。