как объединить json закодированные массивы, возвращенные из parallelcurl в PHP

Я пытаюсь реализовать решение, которое я нашел на этом сайте:

Параллельное выполнение cURL в PHP

однако у меня есть проблема, чтобы объединить все результаты и отправить ее в xmlhttprequest для ее обработки. сначала xmlhttprequest вызовет скрипт php, который будет выполнять другие php-скрипты параллельно. вот мой основной php-скрипт (называемый xmlhttprequest):

//parallelcurl_index.php $param1 = $_REQUEST['param1']; $param2 = $_REQUEST['param2']; require_once('parallelcurl.php'); $url1 = "http://example.com/script1.php?param1=" . $param1 . "&param2=" . $param2; $url2 = "http://example.com/script2.php?param1=" . $param1 . "&param2=" . $param2; $url3 = "http://example.com/script3.php?param1=" . $param1 . "&param2=" . $param2; $url4 = "http://example.com/script4.php?param1=" . $param1 . "&param2=" . $param2; $url5 = "http://example.com/script5.php?param1=" . $param1 . "&param2=" . $param2; $url6 = "http://example.com/script6.php?param1=" . $param1 . "&param2=" . $param2; /* each of the above urls will execute one or more oracle sql queries and procedures and store the results in array which will be sent to this script. example $url1 will send results like this: $url1_response = array('city' => $city, 'country' => $country); echo json_encode($url1_response); */ $max_requests = 10; $curl_options = array( CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_SSL_VERIFYHOST => FALSE ); $parallel_curl = new ParallelCurl($max_requests, $curl_options); // Start 6 parallel requests. All three will be started simultaneously. $parallel_curl->startRequest($url1, 'on_request_done'); $parallel_curl->startRequest($url2, 'on_request_done'); $parallel_curl->startRequest($url3, 'on_request_done'); $parallel_curl->startRequest($url4, 'on_request_done'); $parallel_curl->startRequest($url5, 'on_request_done'); $parallel_curl->startRequest($url6, 'on_request_done'); $parallel_curl->finishAllRequests(); // This function gets called back for each request that completes function on_request_done($content, $url, $ch, $search) { $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpcode !== 200) { print "Fetch error $httpcode for '$url'\n"; return; } $responseobject = json_decode($content, true); // I tried this, to combine the arrays but did not work: //$segments = array(); //$segments = array_merge($responseobject, $segments); //echo json_encode($segments); // send results from all above scripts to xmlhttprequest echo json_encode($responseobject); } 

назад в xmlhttprequest, я могу проверить все возвращенные данные:

 alert(xmlHttp.responseText); 

alert () следующим образом:

 {"city":"Muscat","country":"Oman"}{"company":"OTL","Department":"IT"} 

Я вижу, что между каждым массивом json нет разделителя комы, поэтому eval () не будет работать:

  var responseArr = eval('(' + xmlHttp.responseText + ')'); 

если я запустил скрипт для одного URL только в $ parallel_curl-> startRequest () и прокомментировал остальные пять, он работает без проблем. любая помощь будет оценена.

Solutions Collecting From Web of "как объединить json закодированные массивы, возвращенные из parallelcurl в PHP"