php将字符串传递给array()函数

时间:2012-11-16 09:30:32

标签: php function

有没有办法将字符串变量传递给array()函数:

$ints = '112233,112234';
$arr = array($ints);

//instead of

$arr = array(112233,112234);

我知道还有很多其他方法,但传递字符串是我唯一的选择:

$stArr = array();
foreach($dataTeacherAssWr[0]->getStudents() as $student) {
    $stArr[] = $student->getIdUser();
}
MyCacheManager::clearAssignmentCacheOnHomepageForUsers($_SESSION['id_user'], $stArr);

and the method:

public static function clearAssignmentCacheOnHomepageForUsers($teacherId, $studentId) {
    return self::clearAssignmentCacheOnHomepage(
        Array(
            'teacherIds' => array($teacherId),
            'studentIds' => array($studentId)
        )
    );
}

正如您所看到的,我可以将$ studentId作为“flat”ID传递给字符串

4 个答案:

答案 0 :(得分:3)

尝试使用explode函数将逗号分隔的数字拆分为数组...

explode(',', $ints);

用你的例子......

$ints = '112233,112234';
$arr = explode(',', $ints);

产生以下输出:

Array ( [0] => 112233 [1] => 112234 )

如果您希望将字符串传递给语言构造数组(),则无法完成。你可以给它一个逗号分隔的列表,例如array(112233, 112234);,但你不能给它array("112233,112234"); array() documentation将解释它将接受的语法。

它不会知道逗号分隔整数列表并且您希望它被拆分。所有它关心的是你给它一个字符串,所以它将创建一个包含字符串的数组。它不是读者,所以你需要自己分离价值观。

答案 1 :(得分:2)

您可以使用 explode()

$array = explode(",", $string);

输入:

$string = '112233,112234';
$array = explode(",", $string);
var_dump($array);

<强>输出:

array(2) { [0]=> string(6) "112233" [1]=> string(6) "112234" }

答案 2 :(得分:1)

如果您必须将数据放在以逗号分隔的字符串中,则只需在逗号上explode即可获取数组:

$ints = '112233,112234';
$arr = explode(',', $ints);

答案 3 :(得分:1)

这是另一种方式:

    $separator=",";
    $str="112233,112234,112235,112236,112237";
    $arr = explode($separator, $str);
    //print_r($arr);