Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 警告:explode()要求参数2为字符串,数组给定_Php_Arrays_Explode - Fatal编程技术网

Php 警告:explode()要求参数2为字符串,数组给定

Php 警告:explode()要求参数2为字符串,数组给定,php,arrays,explode,Php,Arrays,Explode,我正在尝试使用脚本。当我使用它时,我得到以下错误: 警告:explode()要求参数2是字符串,数组在第16行的/myred/include/functions.php中给出 警告:in_array()要求参数2为数组,在第17行的/myred/include/functions.php中为null 下面是functions.php的第16行和第17行。有人知道它怎么了吗 $reserved = explode("--",$reserved); if (in_array(&q

我正在尝试使用脚本。当我使用它时,我得到以下错误:

警告:explode()要求参数2是字符串,数组在第16行的/myred/include/functions.php中给出

警告:in_array()要求参数2为数组,在第17行的/myred/include/functions.php中为null

下面是functions.php的第16行和第17行。有人知道它怎么了吗

$reserved = explode("--",$reserved);
if (in_array("$dname", $reserved)) {
    $errormsg .= "$text_17<br>";
}
return $errormsg;
$reserved=explode(“--”,$reserved);
if(在_数组中($dname,$reserved)){
$errormsg.=“$text_17
”; } 返回$errormsg;

作为参考,这是我正在使用的脚本:


谢谢

很简单,在第16行,您试图分解一个数组,请参阅php手册中的
explode
,它通过您指定的任何分隔符拆分字符串

由于第16行的
$reserved
失败,第17行也失败,因为
$reserved
未正确设置


发布更多代码,我们需要查看$reserved最先声明的位置。

这一行是您的问题的原因:

$reserved = explode("--",$reserved);
从错误消息中可以看出,
$reserved
已经是一个数组。我想猜测一下,初始
$reserved
数组中的每个元素都是包含要拆分的
“--”
的字符串

如果此假设正确,则需要使用
内爆()
$reserved
转换为字符串:


这将解决错误,并可能为您提供所需的结果。

错误说明一切,预期字符串,给定数组。Try:var_dump($reserved);你想达到什么目的?@AD7six错了!来自php.net:explode($delimiter,$string)@ArtaexMedia这是你的深夜活动:)@user1938508-不要在这样的代码中重复使用变量名-这很难向您解释
$reserved
已经是一个数组-除非您将其删除并将其设置为null以供参考,这是我正在使用的脚本:谢谢!我不会下载它,但是试试这个:删除这行
$reserved=explode(“-”,$reserved)
根据您向我展示的代码和警告,我假设
$reseeved
已经是一个数组,因此无需分解它。因此,通过删除
第16行
第17行
不会发出警告。问题可能更复杂,我需要看更多的代码。找出变量
$reserved
首先声明的位置,发布代码。删除第16行后,我得到警告:in_array()希望参数2是数组,第17行/myred/include/functions.php中给出的字符串这样做我现在得到警告:inpode()[function.infrade]:参数必须是第17行“第17行”的/myred/include/functions.php中的数组-你把代码放在了@leepowers建议的另一个地方。不,我把它放在了他建议的地方suggested@user1938508不太可能。在问题中,
$reserved
以数组开头,并给出了一个错误。您在这里的评论中引用的错误表示,
$reserved
不是数组。至少您是你让事情变得困难了。
$reserved = explode("--", implode($reserved));