我有一个字符串,它可能包含也可能不包含逗号。如果是这样,我希望它爆炸成一个数组;如果不是,我仍然希望将字符串保存到新标识符中。我的代码显然不起作用。有人有更好的想法吗?
if(explode(",", $_SESSION['shoparea']))
{
$areas = explode(",", $_SESSION['shoparea']);
} else {
$areas = $_SESSION['shoparea'];
}
此操作的正确语法是什么?
我有一个字符串,它可能包含也可能不包含逗号。如果是这样,我希望它爆炸成一个数组;如果不是,我仍然希望将字符串保存到新标识符中。我的代码显然不起作用。有人有更好的想法吗?
if(explode(",", $_SESSION['shoparea']))
{
$areas = explode(",", $_SESSION['shoparea']);
} else {
$areas = $_SESSION['shoparea'];
}
此操作的正确语法是什么?
if(strpos($_SESSION['shoparea'], ',') !== false) {
$areas = explode(',', $_SESSION['shoparea']);
} else {
$areas = $_SESSION['shoparea'];
}
一切都可以爆炸,如果没有分隔符的实例,它就会变成一个单例数组,所以它可能更简单
$result = explode(",", $_SESSION['shoparea']);
if (count($result) == 1)
$areas = $result[0];
else
$areas = $result;
您可以使用http://php.net/strpos函数来确保存在“,”。
所有你需要的是
$_SESSION['shoparea'] = "xx"; // Test value ..
if (!$areas = explode(",", $_SESSION['shoparea'])) {
$areas = array($_SESSION['shoparea']);
}
输出
array
0 => string 'xx' (length=2)
注意:$areas
需要始终是数组..如果您使用的是循环,您可能会遇到问题,所以我转换了它..
例如,你可以这样做
$areas = $_SESSION['shoparea'];
if(strpos($areas, ',') !== false) {
$areas = explode(",", $areas);
}
if (substr_count($_SESSION['shoparea'], ',') > 0) {
$areas = explode(",", $_SESSION['shoparea']);
}
else {
$areas = $_SESSION['shoparea'];
}