0

したがって、配列内の要素として各文字列を追加するドキュメントの配列と、追加されたドキュメントの新しい配列にドキュメントを追加するプライベートメンバー関数 add document を持つクラスのインスタンスがあります。関数 don() は、追加するドキュメントの配列に追加する必要がある文字列、関数内からドキュメントを追加するクラスのインスタンス、追加するコンテンツの配列の 3 つの引数を取ります。

疑似コードでは、次のようになります。

$contentsAdded = []; //blank array
$contents = ['document one text', 'document two text', 'document three text';
$firstDoc = 'hello I am the first document';

function don($currentString, $instance, $contentArray){
    //addDocument() adds strings to  /         //$contentsAdded
    $instance->addDocument($currentString);
    //Travel through array $contentArray
    //if $contentArray[iterator] is not in     //$contentsAdded, then
    don($contentArray[i], $instance, $contentArray);
}
don($firstDoc, $instance, $contents);

これを行う最善の方法は何ですか?

特に、私が思いついた方法で $contentsAdded に $firstDoc しか含まれていない場合はどうでしょうか?

4

1 に答える 1

1

一般的なプロセスを作成する必要があるため、最初のドキュメントを他のドキュメントから分離する必要はありません。この場合、再帰関数を作成する必要はありません (再帰関数はより多くのリソースを消費する可能性があるため、注意して使用してください)。

ドキュメント配列を単純に反復処理し、インスタンス オブジェクトを使用して 1 つずつ追加する必要があります。

// Initialize the list of document to add
$contents = array('first document',
                  'document one text',
                  'document two text',
                  'document three text');

// Loop over your array of document
foreach($contents as $oneDocument)
    $instance->addDocument($oneDocument);
于 2013-04-15T06:10:16.510 に答える