字符串为:。。还有很多。。001_002_003,想要从右边第4个(_003)开始,得到向左的所有字符串“。。还有很多。。001_002
应当如何实现 ,字符串的长度不确定,所以只能从右边开始载
回复讨论(解决方案) substr可以用负数,详情参考:
http://cn2.php.net/manual/zh/function.substr.php
可以使用_作为分割符,数组操作。
[code=php][/code]
$s = '001_002_003';echo substr($s, 0, -4);//001_002echo substr($s, 0, strrpos($s, '_'));//001_002echo join('_', array_slice(explode('_', $s), 0, -1));//001_002echo strrev(substr(strrev($s), 4));//001_002
$str = '001_002_003';$data = explode('_',$str);krsort($data);foreach($data as $row)echo $row.'
';
$str = '001_002_003_004_005_006_007';$data = explode('_',$str);krsort($data);$total = count($data);$need = $total - 3;foreach($data as $k=>$row){ if($k<$need){ echo $row.'
'; }}
没看清题目,6楼的不算,7楼的应该是lz要求的条件吧?
参考:
substr可以用负数是正解
