Sto provando a normalizzare una stringa di numeri separati da virgola e anche un intervallo. Per dimostrare:PHP: inserire una matrice in un altro array
la matrice:
$array = ["1","2","5-10","15-20"];
dovrebbe diventare:
$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
L'algoritmo su cui sto lavorando è:
//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
Questo conterrà ["5-10", "16-20"];
Poi:
foreach($rangeArray as $index=>$value){
$rangeVal = explode('-',$value);
$convertedArray = range($rangeVal[0],$rangeVal[1]);
}
L'array convertito ora conterrà ["5", "6", "7", "8", "9", "10"];
Il problema che ora ad affrontare è che, come faccio a saltar fuori il valore "5-10" nella matrice originale, e inserire i valori nella $ convertedArray, in modo che avrò il valore:
$ array = ["1", "2", "5", "6", "7", "8", "9", "10", "16-20"];
Quindi, come si inserisce una matrice in una matrice? O c'è un modo più pulito per risolvere questo tipo di problema? convertire l'array di numeri e valori di intervallo in array di numeri correttamente sequenziati?
[array_splice()] (http://www.php.net/manual/en/function.array-splice.php) è la funzione che stai chiedendo, anche se si potrebbe anche usare [array_merge()] (http://www.php.net/manual/en/function.array-merge.php) se non ti interessa l'ordine delle voci –
potresti fornire un esempio su come potrei usarlo in il mio caso? – muffin
ho provato l'unione matrice, ma poi avrei dovuto eliminare quelli con "5-10" e altri valori di intervallo e quindi inserire i valori "normalizzati" nell'indice di quella stringa di intervallo. – muffin