Привет, я работаю над проектом, который требует нажатия URL-адреса для каждого идентификатора, хранящегося в массиве, с помощью curl. Ответ на каждый запрос далее используется для выполнения некоторых вычислений. Единственная проблема, с которой я сталкиваюсь, заключается в том, что размер массива огромный, т.е. около 25000, так что в основном мне нужно сделать около 25000 запросов curl, что, я думаю, неосуществимо, поэтому я надеялся, что в любом случае я смогу разделить массив на более мелкие куски и поразить блок URL-адресов на фрагмент
$array=[1,2,3,4,5,6,7,8,9,10........25000];
$chunk1=[1,2,...1000];
$chunk2=[1000,1001....2000];
и так далее
Надеюсь, это поможет решить ваши требования
<?php
$input_array = array('a', 'b', 'c', 'd', 'e'); // $array=[1,2,3,4,5,6,7,8,9,10........25000];
print_r(array_chunk($input_array, 2)); //In your case $arraychunk=array(); $arraychunk=array_chunk($array,1000); you will find the chunked array ranging from $arraychunk[0] to $arraychunk[24] each of thousand values
print_r(array_chunk($input_array, 2, true)); //In your case $arraychunk=array(); $arraychunk=array_chunk($array,1000,true); you will find the chunked array ranging from $arraychunk[0] to $arraychunk[24] each of thousand values here it preserves keys
?>
//output
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)
)
//You may use curl like this
<?php
function fun($id){
// create curl resource
$url='http://example.com?id=$id';
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);
}
//similarly for all chunked arrays
foreach($arraychunk[0] as $key=>$value) {
$values=$value;
func($values);
}
?>
Других решений пока нет …