我正在尝试规范化一串以逗号分隔的数字和一个范围.展示:
数组:
$array = ["1","2","5-10","15-20"];
Run Code Online (Sandbox Code Playgroud)
应成为:
$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
Run Code Online (Sandbox Code Playgroud)
我正在研究的算法是:
//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
Run Code Online (Sandbox Code Playgroud)
这将包含["5-10", "16-20"];Then:
foreach($rangeArray as $index=>$value){
$rangeVal = explode('-',$value);
$convertedArray = range($rangeVal[0],$rangeVal[1]);
}
Run Code Online (Sandbox Code Playgroud)
转换后的数组现在包含["5","6","7","8","9","10"] ;
我现在面临的问题是,如何在原始数组中弹出值"5-10",并在$ convertedArray中插入值,以便我将获得值:
$ array = ["1","2","5","6","7","8","9","10","16-20"];
那么,如何将数组插入数组?或者有更清洁的方法来解决这类问题吗?将数字和范围值的数组转换为正确排序的数字数组?
对于我当前的项目,我需要用户定义存储在数据库中的一系列数字.
以下字符串是可能的用户输入:
1025-1027,1030,1032-1034
Run Code Online (Sandbox Code Playgroud)
我想用php处理这个字符串以获得一系列可能的数字,包括添加一系列数字n-n²或添加单个数字的可能性n; n²,这个数字分别用于此示例:
1025 1026 1027 1030 1032 1031 1034
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法可以获取1到15范围内的数字列表.并用一个短划线代替连续数字.
例如,如果您有以下数字:
1 2 3 5 6 7 10 12
它会输出
1 - 3, 5 - 7, 10, 12