我一直在尝试创建一个使用一个字符串并使用它的函数-如果提交的字符串是“ HelloWorld:GoodbyeWorld”,该函数将创建一个数组,其内容将是HelloWorld和GoodbyeWorld,因此(““ HelloWorld” , “世界再见” )。这是我的代码。
function parseBadges($str) {
$realstr=$str;
$badges = array();
while(strpos($realstr, ':') !== false) {
array_push($badges, substr(0, strpos($realstr,':')));
$realstr = substr(0, strpos($realstr, ':'));
}
return badges;
}
尝试var_dump(parseBadges(“ FavoerDoer:”)); 退货
array(1) { [0]=> bool(false) }
不知道为什么会这样,有什么想法吗?
它不起作用,因为您正在以复杂的方式完成一项简单的任务。请考虑:
function parse_badges($str) {
return (is_string($str))?explode(':',$str):false;
}
解释:
$str
。(is_string)? ... :false;
explode()
则会将您的字符串分割为您选择的字符,并返回包含子字符串的数组。更多阅读:PHP explode()
编辑
如果您想避免像这样的空结果word1:word2:
,则将返回3的数组,最后一个单元格将为空。我们可以简单地添加array_filter()
:
function parse_badges($str) {
return (is_string($str))?array_filter(explode(':',$str)):false;
}
在array_filter
默认情况下将删除空细胞。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句