从逗号分隔的字符串创建PHP数组

时间:2014-09-29 09:11:15

标签: php

我希望能够创建像

这样的数组
$array = array("one", "two", "three"); 

使用逗号分隔的字符串

我试过了:

$queue = explode(',', $_GET["q"]);

但它没有创建数组。

当我使用

foreach($queue as $q) {
    echo $q;
}

它只显示逗号分隔字符串中的一项而不是所有项目。

如果我使用我的代码的第一部分($array = array("one", "two", "three");

然后使用foreach循环,它工作正常

$_GET["q"]的值为one,two,three

更新:

我的完整代码是:

$_GET["q"] == '402,403';

$queue = explode(',', urldecode($_GET["q"]));;

foreach($queue as $q) {
        $asm = new AGI_AsteriskManager();
        if($asm->connect()) {
                $result = $asm->Command("queue show $q");
        }
        $asm->disconnect();

        foreach(explode("\n", $result['data']) as $line) {
                if(preg_match("/talktime/i", $line) && !preg_match("/default/i", $line)) {
                        $pieces = explode(" ", $line);
                        echo $pieces[2];
                }
        }
}

$pieces[2]只回显一次 - 它至少应回显0,但它只显示0一次

2 个答案:

答案 0 :(得分:0)

假设你的字符串是"一,二,三"

<?php
    $_GET["q"] = "one,two,three";
    $queue = explode(',', $_GET["q"]);
    print_r($queue);
?>

<强>输出

Array
(
    [0] => one
    [1] => two
    [2] => three
)

答案 1 :(得分:0)

在通过URL传递长值时,使用在编码要在URL的查询部分中使用的字符串时使用的urlencode,作为将变量传递到下一页的便捷方式。

$yourstring = "one,two,three";    // your string
$final = urlencode($yourstring);  // url encode it
header("location:yourpage.php?q=$final");   // pass through URL

尝试使用urldecode

解码编码的字符串,从而在另一页中获取URL参数
$finalarray = explode(',', urldecode($_GET['q']));