使用while循环PHP填充数组

时间:2013-06-01 21:22:18

标签: php arrays while-loop

我想使用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

1 个答案:

答案 0 :(得分: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)
               )
    )
);

我还在titletype键周围加上引号,你也应该这样做 - 如果你不使用引号,PHP会尝试猜测你的意思,但这很糟糕练习,你应该停止使用它。