Próbuję znormalizować ciąg liczb rozdzielonych przecinkami, a także zakres. Aby wykazać, że:PHP: wstaw tablicę do innej tablicy
tablicę:
$array = ["1","2","5-10","15-20"];
powinny stać się:
$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
algorytmu pracuję na to:
//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
ta będzie zawierać ["5-10", "16-20"];
Następnie:
foreach($rangeArray as $index=>$value){
$rangeVal = explode('-',$value);
$convertedArray = range($rangeVal[0],$rangeVal[1]);
}
Przekształcona tablica będzie teraz zawierała ["5", "6", "7", "8", "9", "10"];
Problem I teraz twarz jest taka, że jak mogę wyskoczyć wartość „5-10” w oryginalnej tablicy, a następnie włóż wartości w $ convertedArray, tak że będę mieć wartość:
$ array = ["1", "2", "5", "6", "7", "8", "9", "10", "16-20"];
Jak wstawić tablicę do tablicy? Czy istnieje czystszy sposób rozwiązania tego rodzaju problemu? przekształca tablicę liczb i wartości zakresu w tablicę poprawnie zsekwencjonowanych liczb?
[array_splice()] (http://www.php.net/manual/en/function.array-splice.php) jest funkcją prosisz, chociaż można również użyć [array_merge()] (http://www.php.net/manual/en/function.array-merge.php) jeśli nie dbasz o kolejność wpisów –
czy możesz podać przykład, w jaki sposób mogę go użyć w mój przypadek? – muffin
Próbowałem scalania tablicy, ale wtedy musiałbym wyeliminować te z wartościami "5-10" i innymi wartościami zakresu, a następnie wstawić "znormalizowane" wartości w indeksie tego łańcucha zakresu. – muffin