0

有没有办法将字符串变量传递给 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 作为字符串中的“平面”ID 传递

4

4 回答 4

3

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

explode(',', $ints);

以你的例子...

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

产生以下输出:

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

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

它不会知道逗号分隔整数列表并且您希望将其拆分。它只关心你给了它一个字符串,所以它会创建一个包含字符串的数组。它不是读心器,因此您需要自己区分这些值。

于 2012-11-16T09:32:14.923 回答
2

你可以使用explode()

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

输入:

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

输出:

array(2) { [0]=> string(6) "112233" [1]=> string(6) "112234" }
于 2012-11-16T09:32:39.543 回答
1

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

$ints = '112233,112234';
$arr = explode(',', $ints);
于 2012-11-16T09:32:41.570 回答
1

这是另一种方式:

    $separator=",";
    $str="112233,112234,112235,112236,112237";
    $arr = explode($separator, $str);
    //print_r($arr);
于 2012-11-16T10:11:32.317 回答