0

我想使用 while 循环填充数组。使用以下代码,我只能得到 1 行数据。但是如果我打印 $count 它的最终值是 432。有什么想法吗?我已经尝试了几天,但无法弄清楚。

// Populate objects array

$count = 1;
while($o_result->nextHit()) {

    $t_object = new ca_objects($o_result->get('ca_objects.object_id'));
    $o_c_date = $t_object->getCreationTimestamp();
    $o_lm_date = $t_object->getLastChangeTimestamp();

    $a_objects = array ( array ( 
        'title' => $o_result->get('ca_objects.preferred_labels.name'),
        'type' => $o_result->get('ca_objects.type_id',array(
            'convertCodesToDisplayText' => true))
        )
    );

    $count++;
}

//print results    
foreach ($a_objects as $row) {
    echo $row['title']."<br/>";
    echo $row['type']."<br/>";
}
echo $count."<br/>\n"  ; //This prints 432
4

1 回答 1

1

您在$a_objects每次迭代时重置数组,而不是附加到它。

改为这样做:

// outside the loop:
$a_objects = array();

// inside the loop:
$a_objects[] = array (
    'title' => $o_result->get('ca_objects.preferred_labels.name'),
    'type'  => $o_result->get(
                   'ca_objects.type_id',
                   array('convertCodesToDisplayText' => true)
               )
    )
);

title我还在和键周围加上引号type,你也应该这样做——如果你不使用引号,PHP 确实会尝试猜测你的意思,但这是一种不好的做法,你应该停止使用它。

于 2013-06-01T21:25:21.080 回答