为什么合并这些数组会导致错误?

时间:2011-02-15 19:41:24

标签: php arrays merge

我的前端和后端代码如下所示。它工作得很好。从这个页面我将2个数组发送到另一个页面。在那里,我想合并数组并插入到MySQL表中。这是我的头版。

<?php
    include("db.php");
    $team_id=$_GET['team_id'];
    $sql1=mysql_query("select members from team where team_id='$team_id'");
    $sql=mysql_query("select user_id,full_name from users where school_id= '1'");

    while($array=mysql_fetch_assoc($sql))
    {
        $x[] = $array['user_id'];
    }
    echo "</br>";
    $row1=mysql_fetch_array($sql1);
    $member=unserialize($row1['members']);
    echo "<form action='ad_team_mem_db.php' method='post'>";
    echo "<select name='mem[]' size='25' multiple='multiple'>";
    foreach(array_diff_assoc($x ,$member) as $item)
    {
        $sqlf=mysql_query("select user_id,full_name from users where school_id=1 and user_id='$item'");
        if($roww=mysql_fetch_array($sqlf)){
            echo "<option value='".$roww['user_id']."'>".$roww['full_name']."</option>";
        }
    }
    echo "</select></br>";
    echo "<input type='hidden' value='$member' name='member[]'>";
    echo "<input type='submit'>";
    echo "</form>";
    echo "</br>";
?>

这是我的后端页面。在这个页面中,我无法合并2个数组。

<?
    include("db.php");
    $mem=$_POST['mem'];
    $member=$_POST['member'];
    **$members = array_merge ($member, $mem);**
?>

错误讯息

  

警告:array_merge()[function.array-merge]:参数#1不是第5行的C:\ AppServ \ www \ teen \ ad_team_mem_db.php中的数组

3 个答案:

答案 0 :(得分:1)

您可以这样做:

echo "<input type='hidden' value='$member' name='member[]'>";

$member是一个PHP数组,你最终会在表单中看到:

<input type='hidden' value='Array' name='member[]'>

在POSTing时将是一个简单的字符串,这就是你的array_merge失败的原因。

答案 1 :(得分:0)

我认为您可能需要在合并之前取消序列化POST变量。

答案 2 :(得分:0)

$members = array_merge ((array) $member, (array) $mem);