如何从右边向左截取字符串

php中文网
发布: 2016-06-23 14:23:13
原创
1777人浏览过

本帖最后由 goolean 于 2013-09-30 21:31:47 编辑

字符串为:"。。还有很多。。001_002_003",想要从右边第4个(_003)开始,得到向左的所有字符串“。。还有很多。。001_002"

应当如何实现 ,字符串的长度不确定,所以只能从右边开始载

回复讨论(解决方案)

substr可以用负数,详情参考:
http://cn2.php.net/manual/zh/function.substr.php

  可以使用"_"作为分割符,数组操作。

[code=php][ $str='001_002_003';
$find='_003';
echo substr($str,0,strpos($str,$find))
?>/code]

<?php$str='001_002_003';$find='_003';echo substr($str,0,strpos($str,$find))?>
登录后复制

$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.'<br>';
登录后复制

$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.'<br>';	}}
登录后复制

没看清题目,6楼的不算,7楼的应该是LZ要求的条件吧?

参考:

<?php$rest = substr("abcdef", 0, -1);  // 返回 "abcde"$rest = substr("abcdef", 2, -1);  // 返回 "cde"$rest = substr("abcdef", 4, -4);  // 返回 ""$rest = substr("abcdef", -3, -1); // 返回 "de"?>
登录后复制

substr可以用负数是正解

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号