【问题标题】:Turning a nested foreach into a closure?将嵌套的 foreach 变成闭包?
【发布时间】:2014-06-11 12:39:08
【问题描述】:

我只是想让它有点可重复使用,因为我知道我会再次需要它,我很好奇我将如何实现它?如果需要,$solr->addDocuments($bleh) 可以省略。

$solr = New SolrClient([
    'hostname' => $config->Solr->hostname,
    'wt'       => $config->Solr->response,
    'port'     => $config->Solr->port,
    'path'     => $config->Solr->path,
]);

$docsArray = [];
foreach ($recordset AS $key => $array)
{
    $docsArray[$key] = New SolrInputDocument();

    foreach($array AS $id => $value)

        $docsArray[$key]->addField($id,  $value);
}

$solr->addDocuments($docsArray);

更新

如果我能得到一种方法,可以递归地将这些添加到Solr->addField($k, $v, $i); 中,我可以解决这个问题!这里的关键是递归添加Solr字段

【问题讨论】:

  • 这会起作用,但它也不会是一个闭包。至少 +​​1。
  • array_walk_recursive() 将闭包作为参数,你到底想要什么?
  • @MarkBaker 类似这样的东西:pastebin.com/WpbAstPz
  • 请注意,这是一个可怕的无效示例......

标签: php solr closures


【解决方案1】:

休息;将中断任何类型的循环或 switch 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多