Tôi đang cố gắng chuẩn hóa một chuỗi các số được phân cách bằng dấu phẩy và một phạm vi. Để chứng minh:PHP: Chèn một mảng vào một mảng khác
mảng:
$array = ["1","2","5-10","15-20"];
nên trở thành:
$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
Thuật toán tôi đang làm việc trên là:
//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
này sẽ chứa ["5-10", "16-20"];
Sau đó:
foreach($rangeArray as $index=>$value){
$rangeVal = explode('-',$value);
$convertedArray = range($rangeVal[0],$rangeVal[1]);
}
Mảng được chuyển đổi giờ đây sẽ chứa ["5", "6", "7", "8", "9", "10"];
Vấn đề bây giờ tôi phải đối mặt là, làm thế nào để tôi bật ra giá trị "5-10" trong mảng ban đầu, và chèn các giá trị trong $ convertedArray, vì vậy mà tôi sẽ có giá trị:
$ array = [ "1", "2", "5", "6", "7", "8", "9", "10", "16-20"];
Vì vậy, làm cách nào để chèn mảng vào mảng? Hay có cách nào khác để giải quyết vấn đề này? chuyển đổi mảng của cả hai số và giá trị phạm vi thành mảng của các số thứ tự đúng?
[array_splice()] (http://www.php.net/manual/en/function.array-splice.php) là hàm bạn đang yêu cầu, mặc dù bạn cũng có thể sử dụng [array_merge()] (http://www.php.net/manual/en/function.array-merge.php) nếu bạn không quan tâm đến thứ tự của các mục nhập –
bạn có thể cung cấp một ví dụ về cách tôi có thể sử dụng nó trong trường hợp của tôi? – muffin
tôi đã thử kết hợp mảng, nhưng sau đó tôi phải loại bỏ những giá trị "5-10" và các giá trị phạm vi khác, sau đó chèn các giá trị "chuẩn hóa" vào chỉ mục của chuỗi phạm vi đó. – muffin