网站首页 > 精选教程 正文
// 参数数组的第一个元素是要被操作的字符串,后面是注定的子字符串
// 方法一:
function strToArr( $args=array() ){
if( !$args )
return;
static $endArr = array();
// 把主字符串提取出来,新的args只有指定的字符串
$arg = array_splice( $args, 0, 1 );
// 第一个参数是要被操作的字符串
$mainStr = $arg[0];
$arr = array();
foreach( $args as $k=>$v ){
$n = '_'.$k;
// 获取各指定字符串在主字符串最后出现的位置
${$n} = strrpos( $mainStr, $v );
// 把该指定字符串与对应位置,用数组存储
$arr[${$n}] = $v;
}
// 数组的键是位置,把他们按位置排序
ksort( $arr );
// 指针移到最后一个元素
end( $arr );
// 获取指针当前元素(也就是最后一个)的键值
$key = key( $arr );
// 把最后元素的值装入数组endArr
$endArr[$key] = $arr[ $key ];
// 去掉提取过指定字符串后面的字符串,生成新的字符串
$mainStr = substr( $mainStr, 0, $key );
$crr = $args;
// 把新的主字符串添加到数组的最前面
array_unshift( $crr, $mainStr );
// 如果新的主字符串还有指定字符串,再执行本函数
if( subInStr( $mainStr, $args ) )
strToArr( $crr );
ksort( $endArr );
return $endArr;
}
// 判断字符串里是否存在指定的子字符串
function subInStr( $mStr, $arr ){
foreach( $arr as $v ){
if( strpos( $mStr, $v ) )
return true;
}
}
// 例子:
$a = 'xxx or ppp and aaa and bbb or ccc or eee or www';
$aaa = strToArr( array( $a, 'and', 'or' ) );
print_r( $aaa );
// *************************************************
// 方法二:
function strToArr( $args=array() ){
if( !$args )
return;
// 截取数组的第一个元素
$mainStr = array_splice( $args, 0, 1 );
$mainStr = $mainStr[0];
// 先去掉指定的字符串
$newStr = str_replace( $args, '', $mainStr );
// 按空格拆分成数组
$newArr = explode( ' ', $newStr );
// 把原字符串里除指定字符串外的字符串去掉
$str = str_replace( $newArr, '', $mainStr );
// 按空格拆分成数组
$arr = explode( ' ', $str );
// 去掉空元素
$arr = array_filter( $arr );
return $arr;
}
// 例子:
$fs = strToArr( array( $a, ' or', ' and' ) );
print_r( $fs );
猜你喜欢
- 2024-11-12 Java 中为什么 的char 数组比不可变的String更适合存储密码?
- 2024-11-12 啃碎JDK源码(三):ArrayList jdk中的哪些源码是必看的
- 2024-11-12 几行 Java 代码搞定图片提取文字功能
- 2024-11-12 excel函数技巧:choose+filter提取自定义数组
- 2024-11-12 vlookup的高阶用法——数据提取,不是很简单,但是很实用
- 2024-11-12 Java截取新闻标题 java截取string
- 2024-11-12 常用数组方法;看过的有福了 数组常用方法汇总
- 2024-11-12 新函数TAKE来了,自动提取前几名的数据,太好用了
- 2024-11-12 Office新函数Take,提取前后名次名单像喝水一样简单,记得收藏
- 2024-11-12 C语言用结构体向字符数组提取数据
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)