Я пытаюсь нормализовать строку чисел, разделенных запятыми, и диапазон. Чтобы продемонстрировать:
массив:
$array = ["1","2","5-10","15-20"];
должен стать:
$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
Алгоритм, над которым я работаю:
//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
Это будет содержать ["5-10", "16-20"];
Затем:
foreach($rangeArray as $index=>$value){
$rangeVal = explode('-',$value);
$convertedArray = range($rangeVal[0],$rangeVal[1]);
}
Теперь преобразованный массив будет содержать [ "5", "6", "7", "8", "9", "10" ];
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что, как я вычеркиваю значение "5-10" в исходном массиве и вставляю значения в $convertArray, так что у меня будет значение:
$array = [ "1", "2", "5", "6", "7", "8", "9", "10" , "16-20" ];
Итак, как мне вставить массив в массив? Или есть более чистый способ решить эту проблему? преобразование массива обоих чисел и значений диапазона в массив правильно упорядоченных чисел?