我想使用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
答案 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)
)
)
);
我还在title
和type
键周围加上引号,你也应该这样做 - 如果你不使用引号,PHP会尝试猜测你的意思,但这很糟糕练习,你应该停止使用它。