在$ _GET中使用implode

时间:2014-02-21 06:47:31

标签: php arrays post get

我的页面中有一些表单,如:

    <form method="get">
Enter Your Firstname :<input type="text" name="t1"  />
Enter Your Lastname :<input type="text" name="t2"  />
<input type="submit" name="sb" />
</form>

因此用户将填写此表单,我希望以逗号

分隔此表单的值

例如

John,Smith
James,Baker

所以这是我的PHP代码

if ( isset ($_GET['sb']))
{
    $t_array = array("t1","t2");
    foreach ( $t_array as $key ) 
    {
        echo implode(',' , $_GET[$key]);
    }
}

当我尝试这样做时,我收到了这个错误:

Warning: implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in PATH on line 24

我不知道为什么我不能在$ _GET或$ _POST

中使用implode

那我怎么解决这个问题呢?

P.S:我想在我的页面中使用数组和内爆,请不要写其他方式

4 个答案:

答案 0 :(得分:3)

您的逻辑中存在错误。

以下是可能对您有帮助的示例代码:

$t_array = array($_GET['t1'], $_GET['t2']);
$imploded = implode(',', $t_array);
echo $imploded;

这样可行。

答案 1 :(得分:1)

你在一个值而不是一个数组上调用implode。这段代码

echo implode(',' , $_GET[$key]);

$_GET[$key]上调用它,这是一个字符串。

您正在尝试implode($_GET);

答案 2 :(得分:0)

你需要的是如下所示,你实际上并不需要内爆:

if ( isset ($_GET['sb']))
{
    $t_array = array("t1","t2");
    $result = '';
    foreach ( $t_array as $key ) 
    {
        if ($result != '') $result .= ',';
        $result .= $_GET[$key];
    }
}

答案 3 :(得分:0)

你不能拼写字符串......

尝试这样的事情:

if ( isset ($_GET['sb']))
{
    $t_array = array("t1","t2");
    $arr = array();
    foreach ( $t_array as $key ) 
    {
        $arr[] = $_GET[$key];
    }
    echo implode(',' , $arr);
}