我得到一个错误警告: line () function.implode:在第13行中传递到/home/social/public_html/form_test.php中的无效参数--我不知道为什么会出现这个错误。
if (is_array($_POST['wmeet']))
foreach ($_POST['wmeet'] as $key => $value)
$_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
$wmeet = implode(" ",$_POST['wmeet']);
echo '<pre>'; print_r($wmeet); echo '</pre>';发布于 2011-12-23 18:53:51
你不用牙套。当您检查is_array时,if语句仅适用于下面一行( for each)。for each也只应用于下面一行,然后if块结束。
这意味着当您使用implode()时,它位于if块之外,因此不能确保您的参数是数组。您应该查看亚历克斯的答案,并相应地调整代码,以便implode()行位于if块中。
您的代码现在的工作方式如下:
if (is_array($_POST['wmeet'])) {
foreach ($_POST['wmeet'] as $key => $value) {
$_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
}
}
$wmeet = implode(" ",$_POST['wmeet']);
echo '<pre>'; print_r($wmeet); echo '</pre>';当它应该是这样:
if (is_array($_POST['wmeet'])) {
foreach ($_POST['wmeet'] as $key => $value) {
$_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
}
$wmeet = implode(" ",$_POST['wmeet']);
echo '<pre>'; print_r($wmeet); echo '</pre>';
}发布于 2011-12-23 18:48:18
很难从你的缩进中看出,但你的问题可能是缺少支撑。您需要它们在条件或循环中运行多行代码:
if (is_array($_POST['wmeet'])) {
foreach ($_POST['wmeet'] as $key => $value) {
...
...
}
...
}我猜想,由于缺少大括号,当wmeet不是数组时,内爆()正在运行。
发布于 2011-12-23 18:55:22
即使is_array($_POST['wmeet']条件为false,您的内爆函数也会被调用。使用支撑--你的if状态里面有那个
if (is_array($_POST['wmeet']))
{
foreach ($_POST['wmeet'] as $key => $value)
$_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
$wmeet = implode(" ",$_POST['wmeet']);
echo '<pre>'; print_r($wmeet); echo '</pre>';
}另外,您可能希望在大括号中添加foreach语句,如下所示:
if (is_array($_POST['wmeet']))
{
foreach ($_POST['wmeet'] as $key => $value)
{
$_POST['wmeet'][$key] = mysql_real_escape_string(stripslashes($value));
}
$wmeet = implode(" ",$_POST['wmeet']);
echo '<pre>'; print_r($wmeet); echo '</pre>';
}编辑:我刚刚注意到您正在尝试内爆一个关联数组。我认为内爆不适用于关联数组。
我在php.net (http://www.php.net/manual/en/function.implode.php#103861 by tl at magus )上找到了这段用于关联数组的代码,这对您可能很有用。
$assoc_array =数组(“Key1”=> "Value1","Key2“=> "Value2");
$new_array = array_map(create_function('$key,$value',‘$key$key.’.):“.$value.”;‘array_keys($assoc_array),array_values($assoc_array)’);
打印内爆($new_array);
将产生以下结果:
键1:值1#密钥2:值2#
https://stackoverflow.com/questions/8619580
复制相似问题