警告:implode()

时间:2012-08-01 08:17:30

标签: php loops implode

我收到了以下警告:

  

警告:implode()[function.implode]:传递的参数无效。

导致此问题的原因以及如何解决?

$title = $_POST[photo_name_id];
if($title)
{
    foreach($title as $titled)
    {
        $judul[] = $titled;
    }
}

$titleds = "('".implode("'), ('",$judul)."')";

这是我的表格:

<tr>
    <td> 
        <?  
        $pm1= mysql_query("SELECT photo_name FROM photo_name WHERE photo_name_id = 1");
        $dpm1 = mysql_fetch_array ($pm1);echo"$dpm1[0]"
        ?> 
        <input type='hidden' name='photo_name_id[]' value='<?echo"$dpm1[0]"?>'> :  
    </td>
</tr>
<tr>
    <td> 
        <?  
        $pm1= mysql_query("SELECT photo_name FROM photo_name WHERE photo_name_id = 2");
        $dpm1 = mysql_fetch_array ($pm1);echo"$dpm1[0]"
        ?>
        <input type='hidden' name='photo_name_id[]' value='<?echo"$dpm1[0]"?>'> :  
    </td>
</tr>

3 个答案:

答案 0 :(得分:4)

尝试添加:

$judul = array();

在将$judul初始化为array之前。

$judul = array();

$title = $_POST[photo_name_id];
if($title)
{
    foreach($title as $titled)
    {
        $judul[] = $titled;

    }
}

$titleds = "('".implode("'), ('",$judul)."')";

答案 1 :(得分:1)

如果$title评估为false,会发生什么?然后你的if语句将不会执行,并且不会创建数组。 <{1}}会发出警告,因为传入了未设置的变量。它需要一个数组。

您应该将implode()初始化为空数组,或将内部数据放入if。

另外,引用您的数组键。这是不好的做法,因为最初PHP假设它们是常量。

$judul

或者这个(更可取的是,因为$title = $_POST['photo_name_id']; if($title) { foreach($title as $titled) { $judul[] = $titled; } $titleds = "('" . implode("'), ('", $judul) . "')"; } 将始终设置):

$titleds

然而,这一切都提示了这个问题。为什么要将$title = $_POST['photo_name_id']; $judul = array(); if($title) { foreach($title as $titled) { $judul[] = $titled; } } $titleds = "('" . implode("'), ('", $judul) . "')"; 复制到新数组中。为什么不这样做:

$title

答案 2 :(得分:0)

确保$judul是一个数组。 PHP implode需要参数(字符串,数组)。请参阅this