我正在尝试规范化一串以逗号分隔的数字和一个范围.展示:
数组:
$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"];
那么,如何将数组插入数组?或者有更清洁的方法来解决这类问题吗?将数字和范围值的数组转换为正确排序的数字数组?
我对这个感到有些困惑,我现在很难在网上找到类似的例子.
在PHP中工作,我希望从形式字段中获取输入,可以是表单中的"值列表","范围"或两者的组合;
3,5,6,9,11,23
Run Code Online (Sandbox Code Playgroud)
要么
3-20
Run Code Online (Sandbox Code Playgroud)
要么
3-6,8,12,14-50
Run Code Online (Sandbox Code Playgroud)
我想将这些作为整数数组返回,例如
3,4,5,6,8,12,14,15,16...
Run Code Online (Sandbox Code Playgroud)
我不打算把它们全部输出,但这个想法很明显!
是否有可用的功能,或者我从哪里开始写一个?