【发布时间】:2016-06-05 15:28:21
【问题描述】:
我正在调用以下函数:
function buildInStmt($array)
{
if (is_array($array)) {
$in = implode(',', $array);
} else $in = "'" . $array . "'";
var_dump("in=" . $in);
var_dump("$array=" . $array);
return $in;
}
...
if (!isset($_REQUEST["form-type"]) || empty($_REQUEST["form-type"])) {
throw new Exception('You must select a form type.');
}
$forms = buildInStmt(array($_REQUEST["form-type"]));
函数的 var_dumps 正在返回:
字符串'in=Array'(长度=8)
字符串“数组=数组”(长度=11)
字符串'in=Array'(长度=8)
字符串“数组=数组”(长度=11)
字符串'in=1'(长度=4)
字符串“数组=数组”(长度=11)
var_dump(array($_REQUEST["form-type"]));从调用返回:
数组(大小=1) 0 => 数组(大小=2) 0 => 字符串“4”(长度=1) 1 => 字符串“7”(长度=1)
为什么 implode 不返回逗号分隔的字符串?
如果您选择否决这个问题,请解释原因,以便我从错误中吸取教训。
【问题讨论】:
-
因为你有一个数组数组,或者看起来是这样。
-
谢谢,弗朗西斯科。我正在从 ajax 传递一个数组。现在可以使用了。
-
完美,很高兴知道它:)