从逗号分隔的列表生成数组 - PHP

14

我有一个变量定义如下:$var = "1, 2, 3";,并且我有一个数组:$thePostIdArray = array(1, 2, 3);

当循环遍历数组时,上述数组运行得很好,但是当我尝试使用$var代替逗号分隔的列表时,问题就出现了。

所以(在理想情况下),它可以是$thePostIdArray = array($var);,这与$thePostIdArray = array(1, 2, 3);相同。

到目前为止,所有尝试都没有成功 :'(

这是否可能,还是有更简单的解决方法?

感谢您的任何提示。


3
如果PHP有你期望的那种逻辑,我会疯掉 :) - Robin Castlin
3个回答

63

查看explode函数: $thePostIdArray = explode(', ', $var);


5

使用explode函数。这将解决您的问题。 explode的结构如下:

array explode ( string $delimiter , string $string [, int $limit ] )

现在$delimiter是边界字符串,string $string是输入字符串。针对limit:

如果设置了正数的limit参数,则返回的数组最多包含limit个元素,最后一个元素包含剩余的字符串。

如果limit参数为负数,则返回除了最后-limit个元素以外的所有部分。

如果limit参数为零,则视为1。

请访问以下链接,您可以从中学到更多信息: php.net链接


2

对于想要结果以and结尾的开发人员,可以使用以下代码:

$titleString = array('apple', 'banana', 'pear', 'grape');
$totalTitles = count($titleString);
if($totalTitles>1)
{
    $titleString = implode(', ' , array_slice($titleString,0,$totalTitles-1)) . ' and ' . end($titleString);
}
else
{
    $titleString = implode(', ' , $titleString);
}

echo $titleString; // apple, banana, pear and grape

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接