Php 是否可以同时对数组的所有成员执行函数?

Php 是否可以同时对数组的所有成员执行函数?,php,arrays,function,asynchronous,foreach,Php,Arrays,Function,Asynchronous,Foreach,背景: $a = array('1','2','3'); foreach ($a as $item){ //rest of code //example file_get_contents(url); //the script waits for it to be completed before going to the next } 上面的脚本是一个接一个的 我关心的是,当单个元素上的进程花费太长时间时,其余元素必须等待处理 是否可以同时对所有数组项执行操作?执行一些搜索时,我

背景:

$a = array('1','2','3');
foreach ($a as $item){
  //rest of code
  //example file_get_contents(url);
  //the script waits for it to be completed before going to the next
}
上面的脚本是一个接一个的

我关心的是,当单个元素上的进程花费太长时间时,其余元素必须等待处理


是否可以同时对所有数组项执行操作?

执行一些搜索时,我发现了滚动卷曲

我使用了附带的example.php,我将它缩短了一点

require("RollingCurl.php");
$urls = array(); // regular array, or from csv or from Database...

function request_callback($response, $info) {
    // parse the page title out of the returned HTML
    if (preg_match("~<title>(.*?)</title>~i", $response, $out)) {
        $title = $out[1];
    }
    echo "<b>$title</b>";
    print_r($info);
    echo "<hr>";
}

$rc = new RollingCurl("request_callback");
$rc->window_size = 20;
foreach ($urls as $url) {
    $request = new RollingCurlRequest($url);
    $rc->add($request);
}
$rc->execute();
require(“RollingCurl.php”);
$URL=array();//常规数组,或来自csv或数据库。。。
函数请求\回调($response,$info){
//从返回的HTML中解析页面标题
if(preg_匹配(“(.*?~i”,$response,$out)){
$title=$out[1];
}
回音“$title”;
打印(信息);
回声“
”; } $rc=新的RollingCurl(“请求回调”); $rc->窗口大小=20; foreach($url作为$url){ $request=新的RollingCurlRequest($url); $rc->add($request); } $rc->execute();
我可能无法正确理解您的意思,但您的问题对我来说意义不大。1.与nodejs不同,在我的理解2中,它在PHP中不能并行工作。能否执行整个数组取决于调用的函数3。即使下游函数接受数组作为参数,只要数组中的项需要单独处理,它也将有一个foreach循环,并产生相同的性能。。。如果我没有回答你的问题,也许你应该详细说明你的问题是什么。这个问题有被关闭的风险,因为缺乏明确性。我对您的问题进行了编辑,试图对其进行改进,但如果我的编辑误解了您的问题,请重新编辑或回滚该问题。@JohnR如果您能告诉我们您希望对数组执行什么操作,我们可以帮助您找到最佳的数组操作函数,但您的所有php进程都将按顺序运行。在“forearch//代码的其余部分”中我做了一个文件获取内容(url)。。。问题是一些站点比其他站点花费更多的时间,并且它“挂起”srcipt。我正在寻找在Parralel做的事情。。。(我猜)PHP不提供多线程或异步执行。它们可以通过多种方式实现(使用扩展、分叉脚本或启动外部进程),但它们很麻烦。大多数时候,目标不值得努力。你到底想同时做什么?