2014-04-25 3 views
2

나는 그것을 다시 필요로한다는 것을 알기 때문에 이것을 재사용 할 수 있도록 노력하고있다. 나는 그것을 어떻게 성취 할 것인지 궁금하다. 필요한 경우 $solr->addDocuments($bleh)을 생략 할 수 있습니다.중첩 된 foreach를 클로저로 변환 하시겠습니까?

$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); 

UPDATE

내가 재귀 내가 그와 함께 정착 할 수있는 Solr->addField($k, $v, $i);에 다음을 추가하는 방법 (들)을 얻을 수 있다면! 여기서 핵심은 Solr 필드를 재귀 적으로 추가하는 것입니다.

+1

[array_walk_recursive()] (http://www.php.net/manual/en/function.array-walk-recursive.php)? –

+0

가 작동하지만 클로저가 아닐 수도 있습니다. +1 이하. – ehime

+1

array_walk_recursive()는 클로저를 인수로 사용하며, 정확히 무엇을하고 있습니까? –

답변

0

break; 모든 유형의 루프 또는 switch 문을 중단합니다.

관련 문제