Php `explode`未找到分隔符行为
如果未找到分隔符,我希望Php `explode`未找到分隔符行为,php,split,Php,Split,如果未找到分隔符,我希望explode返回一个空数组 目前,我这样做是为了获得我想要的explode行为: if (strpos($line, ' ') === false) { $entries = []; } else { $entries = explode(' ', $line); } 必须有一种更简洁的方法来获得这种行为,而不必使用preg\u sp
explode
返回一个空数组
目前,我这样做是为了获得我想要的explode
行为:
if (strpos($line, ' ') === false) {
$entries = [];
} else {
$entries = explode(' ', $line);
}
必须有一种更简洁的方法来获得这种行为,而不必使用preg\u split
preg_split
有自己的行为,这也是不可取的,例如在结果数组项中包含分隔符。因此,您有一个空格分隔的字符串数据,例如'foo bar'
?您的规则是,如果没有分隔符,这意味着如果字符串是单个值('foo'
)或空字符串('
),则需要空数组;否则您想要分割分隔的数据吗
$entries = explode(' ', $line);
if (count($entries) < 2) {
$entries = [];
}
$entries=分解(“”,$line);
如果(计数($entries)<2){
$entries=[];
}
实际上,没有一种合理的方法来缩短此特定条件,但这样可以消除对字符串的冗余检查,并清楚地说明代码试图执行的操作。因此,您有一个空格分隔的数据字符串,例如'foo bar'
?您的规则是,如果没有分隔符,这意味着如果字符串是单个值('foo'
)或空字符串('
),则需要空数组;否则您想要分割分隔的数据吗
$entries = explode(' ', $line);
if (count($entries) < 2) {
$entries = [];
}
$entries=分解(“”,$line);
如果(计数($entries)<2){
$entries=[];
}
确实没有一种合理的方法来缩短这个特定条件,但这消除了对字符串的冗余检查,并清楚地说明了代码试图做什么。你的问题是什么?有没有更简洁的方法来获得我在问题中详细描述的行为?也许:
if($entries[0]=$line){…
better:if(count($entries)==1)$entries=[];
if($entries[0]=$line)数据是如何生成的/在哪里生成的?这听起来像是应该在验证数据的地方处理的事情。你的问题是什么?有没有更简洁的方法来获取我在问题中详细描述的行为?也许:if($entries[0]=$line){…
更好:如果(计数($entries)==1)$entries=[];
数据是如何生成的/在哪里生成的?这听起来像是应该在验证数据的地方处理的事情。