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

您不需要将第一个文档与另一个文档分开,因为您必须制定一个通用流程。并且在这种情况下不需要进行递归函数(递归函数可能会占用更多资源,请谨慎使用)。

您应该简单地遍历您的文档数组,并使用您的实例对象一一添加它们。

// 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 回答