有没有办法将字符串变量传递给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传递给字符串
答案 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);